summaryrefslogtreecommitdiffstats
path: root/models/checklists.js
diff options
context:
space:
mode:
authorAndrés Manelli <andresmanelli@gmail.com>2018-03-19 00:25:19 -0300
committerAndrés Manelli <andresmanelli@gmail.com>2018-03-19 01:25:33 -0300
commitbf7de463f1f71f1758b62187667bf3a7e55585ff (patch)
tree61c06deb85d6bd401d2acb7cc9960777cb7f65f4 /models/checklists.js
parent83848dbee2e6e283e33667cfa9649aafc7c07f4e (diff)
downloadwekan-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.js35
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();