浏览代码

Merge branch 'GhassenRjab-feature/fix-trello-import' into devel

Fix errors when importing from Trello.
Thanks to GhassenRjab ! Closes #1243, closes #1245
Lauri Ojansivu 7 年之前
父节点
当前提交
222c071925
共有 2 个文件被更改,包括 31 次插入22 次删除
  1. 8 0
      CHANGELOG.md
  2. 23 22
      models/trelloCreator.js

+ 8 - 0
CHANGELOG.md

@@ -1,3 +1,11 @@
+# Upcoming Wekan release
+
+This release fixes the following bugs:
+
+* [Fix errors when importing from Trello](https://github.com/wekan/wekan/pull/1259).
+
+Thanks to GitHub user GhassenRjab for contributions.
+
 # v0.43 2017-09-25 Wekan release
 
 This release fixes the following bugs:

+ 23 - 22
models/trelloCreator.js

@@ -113,7 +113,6 @@ export class TrelloCreator {
     check(trelloLabels, [Match.ObjectIncluding({
       // XXX refine control by validating 'color' against a list of allowed
       // values (is it worth the maintenance?)
-      color: String,
       name: String,
     })]);
   }
@@ -184,7 +183,7 @@ export class TrelloCreator {
     trelloBoard.labels.forEach((label) => {
       const labelToCreate = {
         _id: Random.id(6),
-        color: label.color,
+        color: label.color ? label.color : 'black',
         name: label.name,
       };
       // We need to remember them by Trello ID, as this is the only ref we have
@@ -398,27 +397,29 @@ export class TrelloCreator {
 
   createChecklists(trelloChecklists) {
     trelloChecklists.forEach((checklist) => {
-      // Create the checklist
-      const checklistToCreate = {
-        cardId: this.cards[checklist.idCard],
-        title: checklist.name,
-        createdAt: this._now(),
-        sort: checklist.pos,
-      };
-      const checklistId = Checklists.direct.insert(checklistToCreate);
-      // keep track of Trello id => WeKan id
-      this.checklists[checklist.id] = checklistId;
-      // Now add the items to the checklist
-      const itemsToCreate = [];
-      checklist.checkItems.forEach((item) => {
-        itemsToCreate.push({
-          _id: checklistId + itemsToCreate.length,
-          title: item.name,
-          isFinished: item.state === 'complete',
-          sort: item.pos,
+      if (this.cards[checklist.idCard]) {
+        // Create the checklist
+        const checklistToCreate = {
+          cardId: this.cards[checklist.idCard],
+          title: checklist.name,
+          createdAt: this._now(),
+          sort: checklist.pos,
+        };
+        const checklistId = Checklists.direct.insert(checklistToCreate);
+        // keep track of Trello id => WeKan id
+        this.checklists[checklist.id] = checklistId;
+        // Now add the items to the checklist
+        const itemsToCreate = [];
+        checklist.checkItems.forEach((item) => {
+          itemsToCreate.push({
+            _id: checklistId + itemsToCreate.length,
+            title: item.name,
+            isFinished: item.state === 'complete',
+            sort: item.pos,
+          });
         });
-      });
-      Checklists.direct.update(checklistId, {$set: {items: itemsToCreate}});
+        Checklists.direct.update(checklistId, {$set: {items: itemsToCreate}});
+      }
     });
   }