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';
}