diff --git a/db/zentao.sql b/db/zentao.sql
index 827366da2b..ca94b63909 100755
--- a/db/zentao.sql
+++ b/db/zentao.sql
@@ -1542,7 +1542,7 @@ CREATE TABLE IF NOT EXISTS `zt_task` (
KEY `execution` (`execution`),
KEY `story` (`story`),
KEY `parent` (`parent`),
- KEY `assignedTo` (`assignedTo`)
+ KEY `assignedTo` (`assignedTo`),
KEY `order` (`order`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- DROP TABLE IF EXISTS `zt_taskestimate`;
diff --git a/module/execution/model.php b/module/execution/model.php
index 9a090b9465..e0aee7f9cc 100644
--- a/module/execution/model.php
+++ b/module/execution/model.php
@@ -4361,6 +4361,8 @@ class executionModel extends model
$this->loadModel('execution');
$this->loadModel('programplan');
+ $today = helper::today();
+
if(!$isChild)
{
$trClass = 'is-top-level table-nest-child-hide';
@@ -4385,8 +4387,22 @@ class executionModel extends model
echo '
' . zget($users, $execution->PM) . ' | ';
echo "" . zget($this->lang->project->statusList, $execution->status) . ' | ';
echo '' . html::ring($execution->hours->progress) . ' | ';
- echo '' . $execution->begin . ' | ';
- echo '' . $execution->end . ' | ';
+ echo helper::isZeroDate($execution->begin) ? ' | ' : '' . $execution->begin . ' | ';
+ if(!helper::isZeroDate($execution->end))
+ {
+ if($execution->status != 'closed')
+ {
+ echo strtotime($today) > strtotime($execution->end) ? '' . $execution->end . ' | ' : '' . $execution->end . ' | ';
+ }
+ else
+ {
+ echo '' . $execution->end . ' | ';
+ }
+ }
+ else
+ {
+ echo ' | ';
+ }
echo "" . $execution->hours->totalEstimate . $this->lang->execution->workHourUnit . ' | ';
echo "" . $execution->hours->totalConsumed . $this->lang->execution->workHourUnit . ' | ';
echo "" . $execution->hours->totalLeft . $this->lang->execution->workHourUnit . ' | ';
diff --git a/module/project/css/common.css b/module/project/css/common.css
index c7dfdc44b7..8b503b764e 100644
--- a/module/project/css/common.css
+++ b/module/project/css/common.css
@@ -1,3 +1,4 @@
.future {display: inline-block;}
.c-number {overflow: hidden; text-align: right !important; text-overflow: ellipsis; white-space: nowrap;}
.text-remind {color: #ffa34d;}
+td.delayed {color: #fff; background: #e84e0f !important;}
diff --git a/module/task/model.php b/module/task/model.php
index 0dbfc03fd5..290032a749 100644
--- a/module/task/model.php
+++ b/module/task/model.php
@@ -3782,6 +3782,9 @@ class taskModel extends model
*/
public function buildNestedList($execution, $task, $isChild = false, $showmore = false, $users = array())
{
+ $this->app->loadLang('execution');
+
+ $today = helper::today();
$showmore = $showmore ? 'showmore' : '';
$trAttrs = "data-id='t$task->id'";
if(!$isChild)
@@ -3806,8 +3809,22 @@ class taskModel extends model
$list .= '' . zget($users, $task->assignedTo, '') . ' | ';
$list .= "" . $this->processStatus('task', $task) . ' | ';
$list .= ' | ';
- $list .= '' . $task->estStarted . ' | ';
- $list .= '' . $task->deadline . ' | ';
+ $list .= helper::isZeroDate($task->estStarted) ? ' | ' : '' . $task->estStarted . ' | ';
+ if(!helper::isZeroDate($task->deadline))
+ {
+ if($task->status != 'done')
+ {
+ $list .= strtotime($today) > strtotime($task->deadline) ? 'lang->execution->delayed . '">' . $task->deadline . ' | ' : '' . $task->deadline . ' | ';
+ }
+ else
+ {
+ $list .= '' . $task->deadline . ' | ';
+ }
+ }
+ else
+ {
+ $list .= ' | ';
+ }
$list .= '' . $task->estimate . $this->lang->execution->workHourUnit . ' | ';
$list .= '' . $task->consumed . $this->lang->execution->workHourUnit . ' | ';
$list .= '' . $task->left . $this->lang->execution->workHourUnit . ' | ';