From c4a17d900e1aa72a66fa7d5d40627243328398be Mon Sep 17 00:00:00 2001 From: arpandhakal-lgtm Date: Fri, 19 Dec 2025 14:13:14 +0545 Subject: [PATCH 1/3] fix(OUT-2827): showing subtasks on CRM view. - showing all subtasks on CRM view (the ones that are out of scope for the selected client) is something less feasible. Instead of that, created a mechanism where created subtasks with assigneeId and viewers same as the parent task for CRM view. --- src/app/api/tasks/tasks.service.ts | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/src/app/api/tasks/tasks.service.ts b/src/app/api/tasks/tasks.service.ts index 104162bdf..91814d385 100644 --- a/src/app/api/tasks/tasks.service.ts +++ b/src/app/api/tasks/tasks.service.ts @@ -312,7 +312,7 @@ export class TasksService extends BaseService { template.subTaskTemplates.map(async (sub, index) => { const updatedSubTemplate = await templateService.getAppliedTemplateDescription(sub.id) const manualTimeStamp = new Date(template.createdAt.getTime() + (template.subTaskTemplates.length - index) * 10) //maintain the order of subtasks in tasks with respect to subtasks in templates - await this.createSubtasksFromTemplate(updatedSubTemplate, newTask.id, manualTimeStamp) + await this.createSubtasksFromTemplate(updatedSubTemplate, newTask, manualTimeStamp) }), ) } @@ -1154,8 +1154,12 @@ export class TasksService extends BaseService { return viewers } - private async createSubtasksFromTemplate(data: TaskTemplate, parentId: string, manualTimestamp: Date) { + private async createSubtasksFromTemplate(data: TaskTemplate, parentTask: Task, manualTimestamp: Date) { const { workspaceId, title, body, workflowStateId } = data + const previewMode = Boolean(this.user.clientId || this.user.companyId) + const { id: parentId, internalUserId, clientId, companyId, viewers } = parentTask + + console.log(previewMode, 'previewmode logged here') try { const createTaskPayload = CreateTaskRequestSchema.parse({ title, @@ -1164,7 +1168,15 @@ export class TasksService extends BaseService { workflowStateId, parentId, templateId: undefined, //just to be safe from circular recursion + ...(previewMode && { + internalUserId, + clientId, + companyId, + viewers, + }), //On CRM view, we set assignee and viewers for subtasks same as the parent task. }) + + console.log(createTaskPayload, 'here') await this.createTask(createTaskPayload, { disableSubtaskTemplates: true, manualTimestamp: manualTimestamp }) } catch (e) { const deleteTask = this.db.task.delete({ where: { id: parentId } }) From fd0e8b31906db4a2df34ac0617b9b422f71b19d7 Mon Sep 17 00:00:00 2001 From: arpandhakal-lgtm Date: Fri, 19 Dec 2025 14:25:35 +0545 Subject: [PATCH 2/3] fix(OUT-2827): remove logs --- src/app/api/tasks/tasks.service.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/src/app/api/tasks/tasks.service.ts b/src/app/api/tasks/tasks.service.ts index 91814d385..54f9938b3 100644 --- a/src/app/api/tasks/tasks.service.ts +++ b/src/app/api/tasks/tasks.service.ts @@ -1159,7 +1159,6 @@ export class TasksService extends BaseService { const previewMode = Boolean(this.user.clientId || this.user.companyId) const { id: parentId, internalUserId, clientId, companyId, viewers } = parentTask - console.log(previewMode, 'previewmode logged here') try { const createTaskPayload = CreateTaskRequestSchema.parse({ title, From 0adf104081cce7b2cd19c991aea68ae49e48fb53 Mon Sep 17 00:00:00 2001 From: arpandhakal-lgtm Date: Fri, 19 Dec 2025 14:31:40 +0545 Subject: [PATCH 3/3] fix(OUT-2827): remove logs --- src/app/api/tasks/tasks.service.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/src/app/api/tasks/tasks.service.ts b/src/app/api/tasks/tasks.service.ts index 54f9938b3..ce2965bec 100644 --- a/src/app/api/tasks/tasks.service.ts +++ b/src/app/api/tasks/tasks.service.ts @@ -1175,7 +1175,6 @@ export class TasksService extends BaseService { }), //On CRM view, we set assignee and viewers for subtasks same as the parent task. }) - console.log(createTaskPayload, 'here') await this.createTask(createTaskPayload, { disableSubtaskTemplates: true, manualTimestamp: manualTimestamp }) } catch (e) { const deleteTask = this.db.task.delete({ where: { id: parentId } })