From e8522c323f12cbd3c1394530767e16680d2494d5 Mon Sep 17 00:00:00 2001 From: Kai Lehmann Date: Tue, 3 Aug 2021 14:02:22 +0200 Subject: [PATCH 1/2] fixes retrieval of next board cardnumber --- models/boards.js | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/models/boards.js b/models/boards.js index e64049201..4e17c6bf6 100644 --- a/models/boards.js +++ b/models/boards.js @@ -1065,8 +1065,23 @@ Boards.helpers({ }, getNextCardNumber() { - const boardCards = Cards.find({ boardId: this._id }).fetch(); - return boardCards.length + 1; + const boardCards = Cards.find( + { + boardId: this._id + }, + { + sort: { cardNumber: -1 }, + limit: 1 + } + ).fetch(); + + // If no card is assigned to the board, return 1 + if (!boardCards || boardCards.length === 0) { + return 1; + } + + const maxCardNr = !!boardCards[0].cardNumber ? boardCards[0].cardNumber : 0; + return maxCardNr + 1; }, cardsDueInBetween(start, end) { From 2fd741bf549b8c718fde9f9a37235bfb5b93e9b1 Mon Sep 17 00:00:00 2001 From: Kai Lehmann Date: Tue, 3 Aug 2021 14:03:05 +0200 Subject: [PATCH 2/2] fix cardnumber assignment for moved or copied card --- models/cards.js | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/models/cards.js b/models/cards.js index cec1cd67f..d43bac9b3 100644 --- a/models/cards.js +++ b/models/cards.js @@ -577,6 +577,7 @@ Cards.helpers({ delete this._id; this.boardId = boardId; + this.cardNumber = Boards.findOne(boardId).getNextCardNumber(); this.swimlaneId = swimlaneId; this.listId = listId; const _id = Cards.insert(this); @@ -1989,8 +1990,12 @@ Cards.mutations({ '_id', ); + // assign the new card number from the target board + const newCardNumber = newBoard.getNextCardNumber(); + Object.assign(mutatedFields, { labelIds: newCardLabelIds, + cardNumber: newCardNumber }); mutatedFields.customFields = this.mapCustomFieldsToBoard(newBoard._id);