Browse Source

Fix not all checklist items being imported/cloned

Daniel Eder 4 years ago
parent
commit
b777f7f2af
1 changed files with 18 additions and 12 deletions
  1. 18 12
      models/wekanCreator.js

+ 18 - 12
models/wekanCreator.js

@@ -716,18 +716,24 @@ export class WekanCreator {
 
 
   createChecklistItems(wekanChecklistItems) {
   createChecklistItems(wekanChecklistItems) {
     wekanChecklistItems.forEach((checklistitem, checklistitemIndex) => {
     wekanChecklistItems.forEach((checklistitem, checklistitemIndex) => {
-      // Create the checklistItem
-      const checklistItemTocreate = {
-        title: checklistitem.title,
-        checklistId: this.checklists[checklistitem.checklistId],
-        cardId: this.cards[checklistitem.cardId],
-        sort: checklistitem.sort ? checklistitem.sort : checklistitemIndex,
-        isFinished: checklistitem.isFinished,
-      };
-      const checklistItemId = ChecklistItems.direct.insert(
-        checklistItemTocreate,
-      );
-      this.checklistItems[checklistitem._id] = checklistItemId;
+      //Check if the checklist for this item (still) exists
+      //If a checklist was deleted, but items remain, the import would error out here
+      //Leading to no further checklist items being imported
+      if (this.checklists[checklistitem.checklistId]) {
+        // Create the checklistItem
+        const checklistItemTocreate = {
+          title: checklistitem.title,
+          checklistId: this.checklists[checklistitem.checklistId],
+          cardId: this.cards[checklistitem.cardId],
+          sort: checklistitem.sort ? checklistitem.sort : checklistitemIndex,
+          isFinished: checklistitem.isFinished,
+        };
+
+        const checklistItemId = ChecklistItems.direct.insert(
+          checklistItemTocreate,
+        );
+        this.checklistItems[checklistitem._id] = checklistItemId;
+      }
     });
     });
   }
   }