From 11581d2382d077c159730965923f42888eb055a2 Mon Sep 17 00:00:00 2001 From: daitingting Date: Mon, 25 Aug 2025 16:08:48 +0800 Subject: [PATCH 1/3] * [task#147448,done,4h] Multiple task's assignedTo is empty. --- module/task/model.php | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/module/task/model.php b/module/task/model.php index 75c536adfa..4204f1fe9a 100755 --- a/module/task/model.php +++ b/module/task/model.php @@ -885,6 +885,7 @@ class taskModel extends model $currentTask = !empty($task) ? clone $task : new stdclass(); if(!isset($currentTask->status)) $currentTask->status = $oldTask->status; $oldTask->team = $team; + if(isset($task->mode)) $oldTask->mode = $task->mode; /* If the assignedTo is not empty, the current task assignedTo is assignedTo. */ if(!empty($_POST['assignedTo']) && is_string($_POST['assignedTo'])) @@ -896,10 +897,14 @@ class taskModel extends model else { $currentTask->assignedTo = $this->getAssignedTo4Multi($members, $oldTask); - if($oldTask->assignedTo != $currentTask->assignedTo) $currentTask->assignedDate = helper::now(); - $oldTask->team = $oldTeam; } + if($task->mode == 'multi' && strpos(',wait,doing,pause,', ",{$task->status},") !== false) $currentTask->assignedTo = ''; + + if($oldTask->assignedTo != $currentTask->assignedTo) $currentTask->assignedDate = helper::now(); + + $oldTask->team = $oldTeam; + /* Compute estimate and left. */ $currentTask->estimate = 0; $currentTask->left = 0; From 98a3ed991b48938114a581c26390c9714d2f41f8 Mon Sep 17 00:00:00 2001 From: daitingting Date: Mon, 25 Aug 2025 16:48:07 +0800 Subject: [PATCH 2/3] * [unittest] Adjust test. --- module/task/test/model/computemultiplehours.php | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/module/task/test/model/computemultiplehours.php b/module/task/test/model/computemultiplehours.php index ad16c8f4b8..cb499f64a4 100755 --- a/module/task/test/model/computemultiplehours.php +++ b/module/task/test/model/computemultiplehours.php @@ -25,6 +25,8 @@ $taskTeam->consumed->range('0{11},1{4},0{2},1{3}'); $taskTeam->status->range('wait{11},doing,done,done,done,wait,wait,doing,done,done'); $taskTeam->gen(20); +zenData('story')->gen(5); + global $tester; $tester->loadModel('task'); @@ -111,7 +113,7 @@ cid=1 - 属性left @0 - taskID 1 有传入task 传入members计算多人工时 - 属性id @1 - - 属性assignedTo @admin + - 属性assignedTo @~~ - 属性status @doing - 属性estimate @3 - 属性left @3 @@ -123,7 +125,7 @@ cid=1 - 属性left @3 - taskID 1 有传入task 传入members 不自动更新状态计算多人工时 - 属性id @1 - - 属性assignedTo @admin + - 属性assignedTo @~~ - 属性status @doing - 属性estimate @3 - 属性left @3 @@ -144,7 +146,7 @@ r($task->computeMultipleHoursTest($oldTasks[3])) r($task->computeMultipleHoursTest($oldTasks[4])) && p('id,assignedTo,status,estimate,left') && e('5,admin,cancel,0,0'); // taskID 5 只有老task计算多人工时 r($task->computeMultipleHoursTest($oldTasks[0], $tasks[0])) && p('id,assignedTo,status,estimate,left') && e('1,admin,doing,5,4'); // taskID 1 有传入task计算多人工时 r($task->computeMultipleHoursTest($oldTasks[1], $tasks[1])) && p('id,assignedTo,status,estimate,left') && e('2,user1,done,13,0'); // taskID 2 有传入task计算多人工时 -r($task->computeMultipleHoursTest($oldTasks[0], $tasks[0], $members[0])) && p('id,assignedTo,status,estimate,left') && e('1,admin,doing,3,3'); // taskID 1 有传入task 传入members计算多人工时 +r($task->computeMultipleHoursTest($oldTasks[0], $tasks[0], $members[0])) && p('id,assignedTo,status,estimate,left') && e('1,~~,doing,3,3'); // taskID 1 有传入task 传入members计算多人工时 r($task->computeMultipleHoursTest($oldTasks[1], $tasks[1], $members[1])) && p('id,assignedTo,status,estimate,left') && e('2,user1,done,3,3'); // taskID 2 有传入task 传入members计算多人工时 -r($task->computeMultipleHoursTest($oldTasks[0], $tasks[0], $members[0], false)) && p('id,assignedTo,status,estimate,left') && e('1,admin,doing,3,3'); // taskID 1 有传入task 传入members 不自动更新状态计算多人工时 +r($task->computeMultipleHoursTest($oldTasks[0], $tasks[0], $members[0], false)) && p('id,assignedTo,status,estimate,left') && e('1,~~,doing,3,3'); // taskID 1 有传入task 传入members 不自动更新状态计算多人工时 r($task->computeMultipleHoursTest($oldTasks[1], $tasks[1], $members[1], false)) && p('id,assignedTo,status,estimate,left') && e('2,user1,done,3,3'); // taskID 2 有传入task 传入members 不自动更新状态计算多人工时 From 75170ad7346416c6d9680f6e89f705cefd5af5b4 Mon Sep 17 00:00:00 2001 From: daitingting Date: Mon, 25 Aug 2025 16:54:13 +0800 Subject: [PATCH 3/3] * [task#147448,done,1h] Check mode. --- module/task/model.php | 2 +- module/task/test/model/computemultiplehours.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/module/task/model.php b/module/task/model.php index 4204f1fe9a..6d44fd57ef 100755 --- a/module/task/model.php +++ b/module/task/model.php @@ -899,7 +899,7 @@ class taskModel extends model $currentTask->assignedTo = $this->getAssignedTo4Multi($members, $oldTask); } - if($task->mode == 'multi' && strpos(',wait,doing,pause,', ",{$task->status},") !== false) $currentTask->assignedTo = ''; + if(isset($task->mode) && $task->mode == 'multi' && strpos(',wait,doing,pause,', ",{$task->status},") !== false) $currentTask->assignedTo = ''; if($oldTask->assignedTo != $currentTask->assignedTo) $currentTask->assignedDate = helper::now(); diff --git a/module/task/test/model/computemultiplehours.php b/module/task/test/model/computemultiplehours.php index cb499f64a4..9b840ee255 100755 --- a/module/task/test/model/computemultiplehours.php +++ b/module/task/test/model/computemultiplehours.php @@ -149,4 +149,4 @@ r($task->computeMultipleHoursTest($oldTasks[1], $tasks[1])) r($task->computeMultipleHoursTest($oldTasks[0], $tasks[0], $members[0])) && p('id,assignedTo,status,estimate,left') && e('1,~~,doing,3,3'); // taskID 1 有传入task 传入members计算多人工时 r($task->computeMultipleHoursTest($oldTasks[1], $tasks[1], $members[1])) && p('id,assignedTo,status,estimate,left') && e('2,user1,done,3,3'); // taskID 2 有传入task 传入members计算多人工时 r($task->computeMultipleHoursTest($oldTasks[0], $tasks[0], $members[0], false)) && p('id,assignedTo,status,estimate,left') && e('1,~~,doing,3,3'); // taskID 1 有传入task 传入members 不自动更新状态计算多人工时 -r($task->computeMultipleHoursTest($oldTasks[1], $tasks[1], $members[1], false)) && p('id,assignedTo,status,estimate,left') && e('2,user1,done,3,3'); // taskID 2 有传入task 传入members 不自动更新状态计算多人工时 +r($task->computeMultipleHoursTest($oldTasks[1], $tasks[1], $members[1], false)) && p('id,assignedTo,status,estimate,left') && e('2,user1,done,3,3'); // taskID 2 有传入task 传入members 不自动更新状态计算多人工时 \ No newline at end of file