From b24ce954fd4acd963612698641c0f010032c07b4 Mon Sep 17 00:00:00 2001 From: tanghucheng Date: Mon, 8 May 2023 19:23:21 +0800 Subject: [PATCH] * Code for task #92310. --- module/execution/model.php | 23 +++++++++++++++++------ module/project/view/execution.html.php | 2 +- module/task/model.php | 4 ++-- 3 files changed, 20 insertions(+), 9 deletions(-) diff --git a/module/execution/model.php b/module/execution/model.php index 93352e69de..4f51dbce9a 100755 --- a/module/execution/model.php +++ b/module/execution/model.php @@ -5213,14 +5213,15 @@ class executionModel extends model /** * Print execution nested list. * - * @param object $execution - * @param bool $isChild - * @param array $users + * @param int $execution + * @param int $isChild + * @param int $users * @param int $productID + * @param string $project * @access public * @return void */ - public function printNestedList($execution, $isChild, $users, $productID) + public function printNestedList($execution, $isChild, $users, $productID, $project = '') { $this->loadModel('task'); $this->loadModel('execution'); @@ -5286,11 +5287,21 @@ class executionModel extends model echo '' . html::ring($execution->hours->progress) . ''; echo ""; echo ''; - common::printIcon('execution', 'start', "executionID={$execution->id}", $execution, 'list', '', '', 'iframe', true); + + $title = ''; + $disabled = ''; + if($project->model == 'ipd') + { + $this->app->loadLang('stage'); + $title = $execution->ipdStage['canStart'] ? '' : sprintf($this->lang->execution->disabledTip->startTip, $this->lang->stage->ipdTypeList[$execution->ipdStage['preAttribute']], $this->lang->stage->ipdTypeList[$execution->attribute]); + $disabled = $execution->ipdStage['canStart'] ? '' : 'disabled'; + } + common::printIcon('execution', 'start', "executionID={$execution->id}", $execution, 'list', '', '', 'iframe', true, $disabled, $title); + $class = !empty($execution->children) ? 'disabled' : ''; common::printIcon('task', 'create', "executionID={$execution->id}", '', 'list', '', '', $class, false, "data-app='execution'"); - $project = $this->loadModel('project')->getByID($execution->project); + if(empty($project)) $project = $this->loadModel('project')->getByID($execution->project); if($execution->type == 'stage' or ($this->app->tab == 'project' and !empty($project->model) and $project->model == 'waterfallplus')) { $isCreateTask = $this->loadModel('programplan')->isCreateTask($execution->id); diff --git a/module/project/view/execution.html.php b/module/project/view/execution.html.php index 6b61d018a8..f48b380f4f 100644 --- a/module/project/view/execution.html.php +++ b/module/project/view/execution.html.php @@ -115,7 +115,7 @@ division = $project->division;?> product)) ? $execution->product : $productID;?> - execution->printNestedList($execution, false, $users, $executionProductID);?> + execution->printNestedList($execution, false, $users, $executionProductID, $project);?> diff --git a/module/task/model.php b/module/task/model.php index d6382648ba..39affb7f43 100755 --- a/module/task/model.php +++ b/module/task/model.php @@ -4175,7 +4175,7 @@ class taskModel extends model $list .= ''; $list .= ''; $list .= ''; - $list .= $this->buildOperateMenu($task, 'browse'); + $list .= $this->buildOperateBrowseMenu($task, $execution); $list .= ''; if(!empty($task->children)) @@ -4252,7 +4252,7 @@ class taskModel extends model * @access public * @return string */ - public function buildOperateBrowseMenu($task) + public function buildOperateBrowseMenu($task, $execution = '') { $menu = ''; $params = "taskID=$task->id";