diff --git a/module/execution/ui/task.html.php b/module/execution/ui/task.html.php index 3e41936687..8389f5b958 100644 --- a/module/execution/ui/task.html.php +++ b/module/execution/ui/task.html.php @@ -60,7 +60,7 @@ $tableData = initTableData($tasks, $cols, $this->task); $lang->task->statusList['changed'] = $lang->task->storyChange; foreach($tableData as $task) { - $task->rawStatus = $task->status; + if(!isset($task->rawStatus)) $task->rawStatus = $task->status; $task->status = $this->processStatus('task', $task); $task->rawStory = $task->story; $task->story = $task->storyTitle; diff --git a/module/my/ui/task.html.php b/module/my/ui/task.html.php index 40aa377ff4..e19b1cac68 100644 --- a/module/my/ui/task.html.php +++ b/module/my/ui/task.html.php @@ -69,8 +69,8 @@ $tasks = initTableData($tasks, $config->my->task->dtable->fieldList, $this->task $cols = array_values($config->my->task->dtable->fieldList); foreach($tasks as $task) { - $task->rawStatus = $task->status; - $task->status = $this->processStatus('task', $task); + if(!isset($task->rawStatus)) $task->rawStatus = $task->status; + $task->status = $this->processStatus('task', $task); } $data = array_values($tasks); diff --git a/module/task/model.php b/module/task/model.php index 1010b91d0d..125d931884 100755 --- a/module/task/model.php +++ b/module/task/model.php @@ -1106,6 +1106,7 @@ class taskModel extends model } $testStories = $this->dao->select('id,title,version,module')->from(TABLE_STORY)->where('id')->in($testStoryIdList)->fetchAll('id'); + $parentTask = $this->fetchById($taskID); foreach($testTasks as $task) { /* If the story id is not exist, skip it. */ @@ -1123,6 +1124,7 @@ class taskModel extends model $childTaskID = $this->dao->lastInsertID(); $this->action->create('task', $childTaskID, 'Opened'); + $this->dao->update(TABLE_TASK)->set('path')->eq("{$parentTask->path}{$childTaskID},")->where('id')->eq($childTaskID)->exec(); if($this->config->edition != 'open') { $relation = new stdClass(); @@ -2675,7 +2677,7 @@ class taskModel extends model /* Delayed or not?. */ if(!empty($task->deadline) && !helper::isZeroDate($task->deadline)) { - $finishedDate = ($task->status == 'done' || $task->status == 'closed') && $task->finishedDate ? substr($task->finishedDate, 0, 10) : $today; + $finishedDate = ($task->status == 'done' || $task->status == 'closed') && !helper::isZeroDate($task->finishedDate) ? substr($task->finishedDate, 0, 10) : $today; $actualDays = $this->loadModel('holiday')->getActualWorkingDays($task->deadline, $finishedDate); $delay = count($actualDays) - 1; if($delay > 0) $task->delay = $delay; @@ -2686,6 +2688,7 @@ class taskModel extends model if(!empty($task->storyStatus) && $task->storyStatus == 'active' && $task->latestStoryVersion > $task->storyVersion) { $task->needConfirm = true; + $task->rawStatus = $task->status; $task->status = 'changed'; }