diff options
author | Andrés Manelli <andresmanelli@gmail.com> | 2018-03-19 00:25:19 -0300 |
---|---|---|
committer | Andrés Manelli <andresmanelli@gmail.com> | 2018-03-19 01:25:33 -0300 |
commit | bf7de463f1f71f1758b62187667bf3a7e55585ff (patch) | |
tree | 61c06deb85d6bd401d2acb7cc9960777cb7f65f4 /models/checklists.js | |
parent | 83848dbee2e6e283e33667cfa9649aafc7c07f4e (diff) | |
download | wekan-bf7de463f1f71f1758b62187667bf3a7e55585ff.tar.gz wekan-bf7de463f1f71f1758b62187667bf3a7e55585ff.tar.bz2 wekan-bf7de463f1f71f1758b62187667bf3a7e55585ff.zip |
Add checklist items model, migration and publication
Diffstat (limited to 'models/checklists.js')
-rw-r--r-- | models/checklists.js | 35 |
1 files changed, 9 insertions, 26 deletions
diff --git a/models/checklists.js b/models/checklists.js index 7eb0a24f..d9b15140 100644 --- a/models/checklists.js +++ b/models/checklists.js @@ -7,24 +7,6 @@ Checklists.attachSchema(new SimpleSchema({ title: { type: String, }, - items: { - type: [Object], - defaultValue: [], - }, - 'items.$._id': { - type: String, - }, - 'items.$.title': { - type: String, - }, - 'items.$.sort': { - type: Number, - decimal: true, - }, - 'items.$.isFinished': { - type: Boolean, - defaultValue: false, - }, finishedAt: { type: Date, optional: true, @@ -46,19 +28,20 @@ Checklists.attachSchema(new SimpleSchema({ }, })); -const self = Checklists; - Checklists.helpers({ itemCount() { - return this.items.length; + return ChecklistItems.find({ checklistId: this._id }).count(); }, - getItemsSorted() { - return _.sortBy(this.items, 'sort'); + items() { + return ChecklistItems.find(Filter.mongoSelector({ + checklistId: this._id, + }), { sort: ['sort'] }); }, finishedCount() { - return this.items.filter((item) => { - return item.isFinished; - }).length; + return ChecklistItems.find({ + checklistId: this._id, + isFinished: true, + }).count(); }, isFinished() { return 0 !== this.itemCount() && this.itemCount() === this.finishedCount(); |