From c10a3cb7b514aaa815e7014ee73dc1818359ebff Mon Sep 17 00:00:00 2001 From: pengjiangxiu Date: Tue, 12 Sep 2017 16:08:41 +0800 Subject: [PATCH] * Finish task #3226. --- module/task/config.php | 2 +- module/task/control.php | 21 +++++++++++++++++++++ module/task/model.php | 12 ++++++------ 3 files changed, 28 insertions(+), 7 deletions(-) diff --git a/module/task/config.php b/module/task/config.php index fe51a001a9..b5bbbc3481 100644 --- a/module/task/config.php +++ b/module/task/config.php @@ -30,7 +30,7 @@ $config->task->editor->cancel = array('id' => 'comment', 'tools' => 'simpleToo $config->task->editor->pause = array('id' => 'comment', 'tools' => 'simpleTools'); $config->task->exportFields = ' - id, project, module, story, + id, project, module, progess, story, name, desc, type, pri,estStarted, realStarted, deadline, status,estimate, consumed, left, mailto, diff --git a/module/task/control.php b/module/task/control.php index eba37a24f6..c6d1475565 100644 --- a/module/task/control.php +++ b/module/task/control.php @@ -1150,6 +1150,27 @@ class task extends control $tasks = $this->dao->select('*')->from(TABLE_TASK)->alias('t1')->where($this->session->taskQueryCondition) ->beginIF($this->post->exportType == 'selected')->andWhere('t1.id')->in($this->cookie->checkedItem)->fi() ->orderBy($orderBy)->fetchAll('id'); + + foreach($tasks as $key => $task) + { + /* Compute task progess. */ + if($task->consumed == 0 and $task->left == 0) + { + $task->progess = 0; + } + elseif($task->consumed != 0 and $task->left == 0) + { + $task->progess = 100; + } + else + { + $task->progess = round($task->consumed / ($task->consumed + $task->left), 2) * 100; + } + + $task->progess .= '%'; + + $tasks[$key] = $task; + } } else { diff --git a/module/task/model.php b/module/task/model.php index 72f1752d83..e2fa5cc836 100644 --- a/module/task/model.php +++ b/module/task/model.php @@ -1215,25 +1215,25 @@ class taskModel extends model /** * Process a task, judge it's status. - * - * @param object $task + * + * @param object $task * @access private * @return object */ public function processTask($task) { $today = helper::today(); - + /* Delayed or not?. */ if($task->status !== 'done' and $task->status !== 'cancel' and $task->status != 'closed') { if($task->deadline != '0000-00-00') { $delay = helper::diffDate($today, $task->deadline); - if($delay > 0) $task->delay = $delay; - } + if($delay > 0) $task->delay = $delay; + } } - + /* Story changed or not. */ $task->needConfirm = false; if($task->storyStatus == 'active' and $task->latestStoryVersion > $task->storyVersion) $task->needConfirm = true;