diff --git a/client/components/cards/minicard.jade b/client/components/cards/minicard.jade index a46889093..eab49a011 100644 --- a/client/components/cards/minicard.jade +++ b/client/components/cards/minicard.jade @@ -129,3 +129,8 @@ template(name="minicard") .badge(class="{{#if checklistFinished}}is-finished{{/if}}") span.badge-icon.fa.fa-check-square-o span.badge-text.check-list-text {{checklistFinishedCount}}/{{checklistItemCount}} + if allSubtasks.count + .badge + span.badge-icon.fa.fa-sitemap + span.badge-text.check-list-text {{subtasksFinishedCount}}/{{allSubtasksCount}} + //{{subtasksFinishedCount}}/{{subtasksCount}} does not work because when a subtaks is archived, the count goes down diff --git a/models/cards.js b/models/cards.js index e344709aa..627b4e08e 100644 --- a/models/cards.js +++ b/models/cards.js @@ -641,37 +641,32 @@ Cards.helpers({ ); }, - allSubtasks() { - return Cards.find( - { - parentId: this._id, - archived: false, - }, - { - sort: { - sort: 1, - }, - }, - ); - }, - - subtasksCount() { - return Cards.find({ - parentId: this._id, - archived: false, - }).count(); - }, - - subtasksFinishedCount() { + subtasksFinished() { return Cards.find({ parentId: this._id, archived: true, - }).count(); + }); }, - subtasksFinished() { - const finishCount = this.subtasksFinishedCount(); - return finishCount > 0 && this.subtasksCount() === finishCount; + allSubtasks() { + return Cards.find({ + parentId: this._id + }); + }, + + subtasksCount() { + const subtasks = this.subtasks(); + return subtasks.count(); + }, + + subtasksFinishedCount() { + const subtasksArchived = this.subtasksFinished(); + return subtasksArchived.count(); + }, + + allSubtasksCount() { + const allSubtasks = this.allSubtasks(); + return allSubtasks.count(); }, allowsSubtasks() {