summaryrefslogtreecommitdiffstats
path: root/models
diff options
context:
space:
mode:
Diffstat (limited to 'models')
-rw-r--r--models/boards.js10
-rw-r--r--models/cards.js32
2 files changed, 39 insertions, 3 deletions
diff --git a/models/boards.js b/models/boards.js
index 6ae818c6..594bb7b9 100644
--- a/models/boards.js
+++ b/models/boards.js
@@ -187,6 +187,16 @@ Boards.helpers({
return Lists.find({ boardId: this._id, archived: false }, { sort: { sort: 1 } });
},
+ hasOvertimeCards(){
+ const card = Cards.findOne({isOvertime: true, boardId: this._id, archived: false} );
+ return card !== undefined;
+ },
+
+ hasSpentTimeCards(){
+ const card = Cards.findOne({spentTime: { $gt: 0 }, boardId: this._id, archived: false} );
+ return card !== undefined;
+ },
+
activities() {
return Activities.find({ boardId: this._id }, { sort: { createdAt: -1 } });
},
diff --git a/models/cards.js b/models/cards.js
index 5de17c6f..b62bfea8 100644
--- a/models/cards.js
+++ b/models/cards.js
@@ -64,8 +64,18 @@ Cards.attachSchema(new SimpleSchema({
type: Date,
optional: true,
},
- // XXX Should probably be called `authorId`. Is it even needed since we have
- // the `members` field?
+ spentTime: {
+ type: Number,
+ decimal: true,
+ optional: true,
+ },
+ isOvertime: {
+ type: Boolean,
+ defaultValue: false,
+ optional: true,
+ },
+ // XXX Should probably be called `authorId`. Is it even needed since we have
+ // the `members` field?
userId: {
type: String,
autoValue() { // eslint-disable-line consistent-return
@@ -207,7 +217,11 @@ Cards.mutations({
},
move(listId, sortIndex) {
- const mutatedFields = {listId};
+ const list = Lists.findOne(listId);
+ const mutatedFields = {
+ listId,
+ boardId: list.boardId,
+ };
if (sortIndex) {
mutatedFields.sort = sortIndex;
}
@@ -269,6 +283,18 @@ Cards.mutations({
unsetDue() {
return {$unset: {dueAt: ''}};
},
+
+ setOvertime(isOvertime) {
+ return {$set: {isOvertime}};
+ },
+
+ setSpentTime(spentTime) {
+ return {$set: {spentTime}};
+ },
+
+ unsetSpentTime() {
+ return {$unset: {spentTime: '', isOvertime: false}};
+ },
});