From 5f1480922b1cba26545741bd3d5d6d9d0e76ccc5 Mon Sep 17 00:00:00 2001 From: zhouxin Date: Thu, 11 May 2023 23:33:15 +0000 Subject: [PATCH] * Add team data fixer. --- module/task/control.php | 10 ++++++---- module/task/model.php | 20 +++++++++----------- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/module/task/control.php b/module/task/control.php index 1788ee7541..c35e01f544 100755 --- a/module/task/control.php +++ b/module/task/control.php @@ -166,15 +166,17 @@ class task extends control if(!empty($_POST)) { $changes = array(); - $postDataFixer = form::data($this->config->task->form->edit); - $rawData = $postDataFixer->rawdata; + $taskDataFixer = form::data($this->config->task->form->edit); + $teamDataFixer = form::data($this->config->task->form->team->edit); + $rawData = $taskDataFixer->rawdata; /* Prepare and check data. */ - $task = $this->taskZen->prepareEdit($postDataFixer, $taskID); + $task = $this->taskZen->prepareEdit($taskDataFixer, $taskID); + $team = $teamDataFixer->get(); if(dao::isError()) return $this->send(array('result' => 'fail', 'message' => dao::getError())); /* Update task. */ - $changes = $this->task->update($task, $rawData); + $changes = $this->task->update($task, $team, $rawData); if(dao::isError()) return $this->send(array('result' => 'fail', 'message' => dao::getError())); /* Record log. */ diff --git a/module/task/model.php b/module/task/model.php index 2c1d3d5834..fc7a9a2ea7 100755 --- a/module/task/model.php +++ b/module/task/model.php @@ -588,14 +588,16 @@ class taskModel extends model /** * Update a task. * - * @param int $taskID + * @param object $task + * @param object $team + * @param object $rawData * @access public - * @return void + * @return array|string|false */ - public function update($task) + public function update(object $task, object $team, object $rawData): array|string|false { $taskID = $task->id; - if($taskID <= 0) return; + if($taskID <= 0) return false; $oldTask = $this->getByID($taskID); @@ -614,17 +616,13 @@ class taskModel extends model $teams = $this->manageTaskTeam($oldTask->mode, $taskID, $task->status); if(!empty($teams)) $task = $this->computeMultipleHours($oldTask, $task, array(), false); } - if(empty($teams)) $task->mode = ''; $requiredFields = $this->taskTao->getRequiredFields4Edit($task); $this->taskTao->doUpdate($task, $oldTask, $requiredFields); if(!dao::isError()) { - if($_POST['mode'] == 'single') - { - $this->dao->delete()->from(TABLE_TASKTEAM)->where('task')->eq($taskID)->exec(); - } + if($task->mode == 'single') $this->dao->delete()->from(TABLE_TASKTEAM)->where('task')->eq($taskID)->exec(); if(isset($task->version) && $task->version > $oldTask->version) $this->taskTao->recordTaskVersion($task); @@ -636,6 +634,7 @@ class taskModel extends model if($task->status == 'done') $this->loadModel('score')->create('task', 'finish', $taskID); if($task->status == 'closed') $this->loadModel('score')->create('task', 'close', $taskID); if($task->status != $oldTask->status) $this->loadModel('kanban')->updateLane($task->execution, 'task', $taskID); + $this->loadModel('action'); $isParentChanged = $task->parent != $oldTask->parent; if($oldTask->parent > 0) @@ -662,8 +661,7 @@ class taskModel extends model if(!empty($task->parent)) $this->updateParent($task, $isParentChanged); - unset($oldTask->parent); - unset($task->parent); + unset($oldTask->parent, $task->parent); if(($this->config->edition == 'biz' || $this->config->edition == 'max') && $oldTask->feedback) $this->loadModel('feedback')->updateStatus('task', $oldTask->feedback, $task->status, $oldTask->status); if(isset($oldTask->team))