summaryrefslogtreecommitdiffstats
path: root/models/cards.js
diff options
context:
space:
mode:
authorNicu Tofan <nicu.tofan@gmail.com>2018-06-18 23:25:56 +0300
committerNicu Tofan <nicu.tofan@gmail.com>2018-06-26 14:32:47 +0300
commitd59583915cca24d53a11251c54ca7caf6b5edb4e (patch)
treea425bb136877a3f93c8a9871008be2606eb5427c /models/cards.js
parentb627ced605f0ab98eb2977420da954f31df4f592 (diff)
downloadwekan-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.js24
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,
});