diff --git a/module/project/control.php b/module/project/control.php index bff3c45188..fc381b9673 100755 --- a/module/project/control.php +++ b/module/project/control.php @@ -1768,7 +1768,7 @@ class project extends control * * @param string $projectID * @access public - * @return void + * @return void */ public function start(string $projectID) { @@ -1786,7 +1786,7 @@ class project extends control if(dao::isError()) return print(js::error(dao::getError())); $comment = strip_tags($this->post->comment, $this->config->allowedTags); - return $this->projectZen->responseAfterStart($project, $changes, $comment); + return $this->projectZen->responseAfterStart($project, $changes, $postData, $comment); } $this->projectZen->buildStartForm($project); @@ -1805,7 +1805,10 @@ class project extends control if(!empty($_POST)) { + $postData = form::data($this->config->project->form->suspend)->get(); + $changes = $this->project->suspend($projectID); + if(dao::isError()) return print(js::error(dao::getError())); if($this->post->comment != '' or !empty($changes)) @@ -1816,14 +1819,6 @@ class project extends control $this->executeHooks($projectID); return print(js::reload('parent.parent')); } - - $this->view->title = $this->lang->project->suspend; - $this->view->position[] = $this->lang->project->suspend; - $this->view->users = $this->loadModel('user')->getPairs('noletter'); - $this->view->actions = $this->action->getList('project', $projectID); - $this->view->project = $this->project->getByID($projectID); - - $this->display(); } /** diff --git a/module/project/test/model/suspend.php b/module/project/test/model/suspend.php index 87b6bc752e..31d020bfc7 100755 --- a/module/project/test/model/suspend.php +++ b/module/project/test/model/suspend.php @@ -3,25 +3,37 @@ include dirname(__FILE__, 5) . "/test/lib/init.php"; su('admin'); +function initData() +{ + $project = zdTable('project'); + $project->id->range('2-5'); + $project->project->range('2-5'); + $project->name->prefix("项目")->range('2-5'); + $project->code->prefix("project")->range('2-5'); + $project->type->range("project"); + $project->status->range("doing,suspended,closed"); + + $project->gen(4); +} + /** title=测试 projectModel->suspend(); +timeout=0 cid=1 -pid=1 -挂起id为56状态是doing的项目 >> suspended -挂起id为73状态是suspended的项目 >> suspendedDate -挂起id为74状态是closed的项目 >> suspended +- 执行project模块的suspend方法,参数是2,属性new @suspended +- 执行project模块的suspend方法,参数是5,属性field @suspendedDate +- 执行project模块的suspend方法,参数是4,属性new @suspended + */ global $tester; $tester->loadModel('project'); -$changes1 = $tester->project->suspend(56); -$changes2 = $tester->project->suspend(73); -$changes3 = $tester->project->suspend(74); +initData(); -r($changes1[0]) && p('new') && e('suspended'); // 挂起id为56状态是doing的项目 -r($changes2[0]) && p('field') && e('suspendedDate'); // 挂起id为73状态是suspended的项目 -r($changes3[0]) && p('new') && e('suspended'); // 挂起id为74状态是closed的项目 +r($tester->project->suspend(2)) && p('new') && e('suspended'); +r($tester->project->suspend(5)) && p('field') && e('suspendedDate'); +r($tester->project->suspend(4)) && p('new') && e('suspended'); \ No newline at end of file diff --git a/module/project/zen.php b/module/project/zen.php index 31683ba750..ee3b6db6a0 100644 --- a/module/project/zen.php +++ b/module/project/zen.php @@ -15,8 +15,8 @@ class projectZen extends project * @param int $programID * @param int $copyProjectID * @param string $extra - * @access protected - * @return void + * @access protected + * @return void */ protected function buildCreateForm(string $model, int $programID, int $copyProjectID, string $extra):void { @@ -116,8 +116,8 @@ class projectZen extends project /** * Append extras data to post data. * @param object $postData - * @access protected - * @return int|object + * @access protected + * @return int|object */ protected function prepareStartExtras(object $postData):object { @@ -131,8 +131,8 @@ class projectZen extends project /** * Send variables to view page. * @param object $project - * @access protected - * @return int|object + * @access protected + * @return int|object */ protected function buildStartForm(object $project) { @@ -149,8 +149,8 @@ class projectZen extends project * @param object $project * @param array $changes * @param string $comment - * @access protected - * @return int|object + * @access protected + * @return int|object */ protected function responseAfterStart(object $project, array $changes, string $comment) :int|object { @@ -165,4 +165,14 @@ class projectZen extends project $this->executeHooks($project->id); return print(js::reload('parent.parent')); } + + protected function buildSuspendForm(object $project) + { + $this->view->title = $this->lang->project->suspend; + $this->view->position[] = $this->lang->project->suspend; + $this->view->users = $this->loadModel('user')->getPairs('noletter'); + $this->view->actions = $this->action->getList('project', $projectID); + $this->view->project = $this->project->getByID($projectID); + $this->display(); + } }