Browse Source

Fixes card-number migration

and further optimizes getNextCardNumber in board model
Kai Lehmann 3 years ago
parent
commit
236b6c3552
2 changed files with 9 additions and 8 deletions
  1. 1 6
      models/boards.js
  2. 8 2
      server/migrations.js

+ 1 - 6
models/boards.js

@@ -1066,12 +1066,7 @@ Boards.helpers({
 
   getNextCardNumber() {
     const boardCards = Cards.find({ boardId: this._id }).fetch();
-    if (boardCards.length == 0) {
-      return 1;
-    }
-    const maxCardNumber = Math.max(...boardCards
-      .map(c => c.cardNumber ? c.cardNumber : 0));
-    return maxCardNumber + 1;
+    return boardCards.length + 1;
   },
 
   cardsDueInBetween(start, end) {

+ 8 - 2
server/migrations.js

@@ -1080,16 +1080,22 @@ Migrations.add('add-card-number-allowed', () => {
 
 Migrations.add('assign-boardwise-card-numbers', () => {
   Boards.find().forEach(board => {
-    let nextCardNumber = 1;
+    let nextCardNumber = board.getNextCardNumber();
     Cards.find(
       {
         boardId: board._id,
         cardNumber: {
           $exists: false
         }
+      },
+      {
+        sort: { createdAt: 1 }
       }
     ).forEach(card => {
-      Cards.update(card._id, { $set: { cardNumber } }, noValidate);
+      Cards.update(
+        card._id,
+        { $set: { cardNumber: nextCardNumber } },
+        noValidate);
       nextCardNumber++;
     });
   })