diff options
author | Nicu Tofan <nicu.tofan@gmail.com> | 2018-06-18 23:25:56 +0300 |
---|---|---|
committer | Nicu Tofan <nicu.tofan@gmail.com> | 2018-06-26 14:32:47 +0300 |
commit | d59583915cca24d53a11251c54ca7caf6b5edb4e (patch) | |
tree | a425bb136877a3f93c8a9871008be2606eb5427c /models/cards.js | |
parent | b627ced605f0ab98eb2977420da954f31df4f592 (diff) | |
download | wekan-d59583915cca24d53a11251c54ca7caf6b5edb4e.tar.gz wekan-d59583915cca24d53a11251c54ca7caf6b5edb4e.tar.bz2 wekan-d59583915cca24d53a11251c54ca7caf6b5edb4e.zip |
Initial implementation for subtasks
Diffstat (limited to 'models/cards.js')
-rw-r--r-- | models/cards.js | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/models/cards.js b/models/cards.js index 00ec14c2..6edffb79 100644 --- a/models/cards.js +++ b/models/cards.js @@ -215,6 +215,27 @@ Cards.helpers({ return this.checklistItemCount() !== 0; }, + subtasks() { + return Subtasks.find({cardId: this._id}, {sort: { sort: 1 } }); + }, + + subtasksCount() { + return Subtasks.find({cardId: this._id}).count(); + }, + + subtasksFinishedCount() { + return Subtasks.find({cardId: this._id, isFinished: true}).count(); + }, + + subtasksFinished() { + const finishCount = this.subtasksFinishedCount(); + return finishCount > 0 && this.subtasksCount() === finishCount; + }, + + hasSubtasks() { + return this.subtasksCount() !== 0; + }, + customFieldIndex(customFieldId) { return _.pluck(this.customFields, '_id').indexOf(customFieldId); }, @@ -513,6 +534,9 @@ function cardRemover(userId, doc) { Checklists.remove({ cardId: doc._id, }); + Subtasks.remove({ + cardId: doc._id, + }); CardComments.remove({ cardId: doc._id, }); |