diff --git a/website/client/src/components/tasks/task.vue b/website/client/src/components/tasks/task.vue index befc614880..91008acded 100644 --- a/website/client/src/components/tasks/task.vue +++ b/website/client/src/components/tasks/task.vue @@ -1053,10 +1053,6 @@ export default { } if (this.isOpenTask) return false; if (this.task.group.assignedUsers.indexOf(this.user._id) !== -1) return false; - if ( - this.task.group.assignedUsers.length > 0 - && this.task.group.assignedUsers.indexOf(this.user._id) === -1 - ) return true; } return true; }, diff --git a/website/server/controllers/api-v3/tasks.js b/website/server/controllers/api-v3/tasks.js index d6aa1cb958..8d8d9eeed5 100644 --- a/website/server/controllers/api-v3/tasks.js +++ b/website/server/controllers/api-v3/tasks.js @@ -710,6 +710,16 @@ api.updateTask = { task: savedTask, }); } + + if (group) { + res.analytics.track('task edit', { + uuid: user._id, + hitType: 'event', + category: 'behavior', + taskType: task.type, + groupID: group._id, + }); + } }, }; diff --git a/website/server/controllers/api-v3/tasks/groups.js b/website/server/controllers/api-v3/tasks/groups.js index e78735e588..3f66c93ee0 100644 --- a/website/server/controllers/api-v3/tasks/groups.js +++ b/website/server/controllers/api-v3/tasks/groups.js @@ -226,6 +226,14 @@ api.assignTask = { await Promise.all(promises); res.respond(200, task); + + res.analytics.track('task assign', { + uuid: user._id, + hitType: 'event', + category: 'behavior', + taskType: task.type, + groupID: group._id, + }); }, }; diff --git a/website/server/libs/tasks/index.js b/website/server/libs/tasks/index.js index 48a9428655..345b8f88d7 100644 --- a/website/server/libs/tasks/index.js +++ b/website/server/libs/tasks/index.js @@ -338,19 +338,22 @@ async function scoreTask (user, task, direction, req, res) { let localTask; let rollbackUser; + let group; + if (task.group.id) { + group = await Group.getGroup({ + user, + groupId: task.group.id, + fields: 'leader managers', + }); + } if ( - task.group.id && !task.userId + group && task.group.id && !task.userId && direction === 'down' && ['todo', 'daily'].includes(task.type) && task.completed && task.group.completedBy !== user._id ) { - const group = await Group.getGroup({ - user, - groupId: task.group.id, - fields: 'leader managers', - }); if (group.leader !== user._id && !group.managers[user._id]) { throw new BadRequest('Cannot uncheck task you did not complete if not a manager.'); }