Check already completed cancelled todos (#9847)

Signed-off-by: Denis Bykhov <bykhov.denis@gmail.com>
This commit is contained in:
Denis Bykhov
2025-09-15 12:17:13 +07:00
committed by GitHub
parent e6d47d1226
commit e6f7d80cea
5 changed files with 37 additions and 11 deletions
+4 -2
View File
@@ -1101,7 +1101,8 @@ export function createModel (builder: Builder): void {
presenter: process.component.ToDoSettingPresenter,
requiredParams: ['_id'],
checkFunction: process.triggerCheck.ToDo,
init: false
init: false,
auto: true
},
process.trigger.OnToDoClose
)
@@ -1116,7 +1117,8 @@ export function createModel (builder: Builder): void {
presenter: process.component.ToDoSettingPresenter,
requiredParams: ['_id'],
checkFunction: process.triggerCheck.ToDo,
init: false
init: false,
auto: true
},
process.trigger.OnToDoRemove
)
+2 -2
View File
@@ -51,12 +51,12 @@ export function createModel (builder: Builder): void {
builder.createModel(TMethodImpl, TFuncImpl, TTriggerImpl)
builder.mixin(process.trigger.OnToDoClose, process.class.Trigger, serverProcess.mixin.TriggerImpl, {
serverCheckFunc: serverProcess.func.CheckToDo,
serverCheckFunc: serverProcess.func.CheckToDoDone,
rollbackFunc: serverProcess.rollbacks.ToDoCloseRollback
})
builder.mixin(process.trigger.OnToDoRemove, process.class.Trigger, serverProcess.mixin.TriggerImpl, {
serverCheckFunc: serverProcess.func.CheckToDo,
serverCheckFunc: serverProcess.func.CheckToDoCancelled,
rollbackFunc: serverProcess.rollbacks.ToDoCancellRollback
})
@@ -27,15 +27,36 @@ import process, {
import { ExecuteResult, ProcessControl } from '@hcengineering/server-process'
import time, { ToDoPriority } from '@hcengineering/time'
export function CheckToDo (
export async function CheckToDoDone (
control: ProcessControl,
execution: Execution,
params: Record<string, any>,
context: Record<string, any>
): boolean {
): Promise<boolean> {
if (params._id === undefined) return false
if (context.todo === undefined) return false
return context.todo._id === params._id
if (context.todo !== undefined) {
return context.todo._id === params._id
} else {
const todo = await control.client.findOne(process.class.ProcessToDo, { _id: params._id })
if (todo === undefined) return false
return todo.doneOn !== null
}
}
export async function CheckToDoCancelled (
control: ProcessControl,
execution: Execution,
params: Record<string, any>,
context: Record<string, any>
): Promise<boolean> {
if (params._id === undefined) return false
if (context.todo !== undefined) {
return context.todo._id === params._id
} else {
const todo = await control.client.findOne(process.class.ProcessToDo, { _id: params._id })
if (todo === undefined) return false
return todo.doneOn === null
}
}
export async function CheckSubProcessesDone (control: ProcessControl, execution: Execution): Promise<boolean> {
@@ -78,7 +78,8 @@ import {
CreateCard,
AddRelation,
AddTag,
CheckToDo,
CheckToDoDone,
CheckToDoCancelled,
OnCardUpdateCheck,
CheckSubProcessesDone,
CheckTime
@@ -355,7 +356,8 @@ export default async () => ({
CreateCard,
AddRelation,
AddTag,
CheckToDo,
CheckToDoDone,
CheckToDoCancelled,
OnCardUpdateCheck,
CheckSubProcessesDone,
CheckTime
+2 -1
View File
@@ -54,7 +54,8 @@ export default plugin(serverProcessId, {
AddRelation: '' as Resource<ExecuteFunc>,
WaitSubProcess: '' as Resource<ExecuteFunc>,
AddTag: '' as Resource<ExecuteFunc>,
CheckToDo: '' as Resource<CheckFunc>,
CheckToDoDone: '' as Resource<CheckFunc>,
CheckToDoCancelled: '' as Resource<CheckFunc>,
OnCardUpdateCheck: '' as Resource<CheckFunc>,
CheckSubProcessesDone: '' as Resource<CheckFunc>,
CheckTime: '' as Resource<CheckFunc>