From d5427507a6c38339e72d298b2f12ad82e2525730 Mon Sep 17 00:00:00 2001 From: leiyong <1549684884@qq.com> Date: Fri, 11 Sep 2020 16:20:04 +0800 Subject: [PATCH] * Batch creation logic of adjustment problem module. --- module/issue/control.php | 20 +++++++++-------- module/issue/lang/en.php | 3 +++ module/issue/lang/zh-cn.php | 3 +++ module/issue/model.php | 30 +++++++++++++++++--------- module/issue/view/batchcreate.html.php | 4 ++-- module/issue/view/edit.html.php | 4 ++++ module/issue/view/view.html.php | 3 +++ 7 files changed, 46 insertions(+), 21 deletions(-) diff --git a/module/issue/control.php b/module/issue/control.php index f009392b9d..4d2e22592f 100644 --- a/module/issue/control.php +++ b/module/issue/control.php @@ -74,19 +74,20 @@ class issue extends control $this->display(); } - /** - * Batch create issues. - * - * @access public - * @return void - */ + /** + * Batch create issues. + * + * @access public + * @return void + */ public function batchCreate() { if($_POST) { - $results = $this->issue->batchCreate(); - if(dao::isError()) $this->send(array('result' => 'fail', 'message' => dao::getError())); - $this->send(array('result' => 'success', 'message' => $this->lang->saveSuccess, 'locate' => inLink('browse', 'browseType=all'))); + $issues = $this->issue->batchCreate(); + foreach($issues as $issue) $this->loadModel('action')->create('issue', $issue, 'Opened'); + + die(js::locate($this->inLink('browse'), 'parent')); } $this->view->title = $this->lang->issue->common . $this->lang->colon . $this->lang->issue->batchCreate; @@ -439,6 +440,7 @@ class issue extends control { $this->commonAction($issueID, 'issue'); $issue = $this->issue->getByID($issueID); + $this->view->title = $this->lang->issue->common . $this->lang->colon . $issue->title; $this->view->position[] = $this->lang->issue->common; $this->view->position[] = $this->lang->issue->basicInfo; diff --git a/module/issue/lang/en.php b/module/issue/lang/en.php index d25b1b0c4a..b4cfcdd787 100644 --- a/module/issue/lang/en.php +++ b/module/issue/lang/en.php @@ -104,6 +104,9 @@ $lang->issue->resolveMethods['tostory'] = 'To Story'; $lang->issue->resolveMethods['torisk'] = 'To Risk'; $lang->issue->confirmDelete = 'Do you want to delete this issue?'; +$lang->issue->typeEmpty = 'ID: %s Type cannot be empty.'; +$lang->issue->titleEmpty = 'ID: %s Title cannot be empty.'; +$lang->issue->severityEmpty = 'ID: %s Severity cannot be empty.'; $lang->issue->logComments = array(); $lang->issue->logComments['totask'] = " created Task %s"; diff --git a/module/issue/lang/zh-cn.php b/module/issue/lang/zh-cn.php index 3a0b9cf461..8b456b7ebd 100644 --- a/module/issue/lang/zh-cn.php +++ b/module/issue/lang/zh-cn.php @@ -104,6 +104,9 @@ $lang->issue->resolveMethods['tostory'] = '转需求'; $lang->issue->resolveMethods['torisk'] = '转风险'; $lang->issue->confirmDelete = '您确认删除该问题?'; +$lang->issue->typeEmpty = 'ID:%s的类别不能为空。'; +$lang->issue->titleEmpty = 'ID:%s的标题不能为空。'; +$lang->issue->severityEmpty = 'ID:%s的严重程度不能为空。'; $lang->issue->logComments = array(); $lang->issue->logComments['totask'] = "创建了任务:%s。"; diff --git a/module/issue/model.php b/module/issue/model.php index 1cbca143e1..db24d75760 100644 --- a/module/issue/model.php +++ b/module/issue/model.php @@ -70,7 +70,9 @@ class issueModel extends model */ public function getByID($issueID) { - return $this->dao->select('*')->from(TABLE_ISSUE)->where('id')->eq($issueID)->andWhere('deleted')->eq('0')->fetch(); + $issue = $this->dao->select('*')->from(TABLE_ISSUE)->where('id')->eq($issueID)->andWhere('deleted')->eq('0')->fetch(); + $issue->files = $this->loadModel('file')->getByObject('issue', $issue->id); + return $issue; } /** @@ -168,6 +170,7 @@ class issueModel extends model $data = fixer::input('post') ->add('editedBy', $this->app->user->account) ->add('editedDate', $now) + ->remove('labels,files') ->addIF($this->post->assignedTo, 'assignedBy', $this->app->user->account) ->addIF($this->post->assignedTo, 'assignedDate', $now) ->stripTags($this->config->issue->editor->edit['id'], $this->config->allowedTags) @@ -178,6 +181,8 @@ class issueModel extends model ->batchCheck($this->config->issue->edit->requiredFields, 'notempty') ->exec(); + $this->loadModel('file')->saveUpload('issue', $issueID); + return common::createChanges($oldIssue, $data); } @@ -260,7 +265,7 @@ class issueModel extends model * Batch create issue. * * @access public - * @return void + * @return array */ public function batchCreate() { @@ -268,30 +273,35 @@ class issueModel extends model $data = fixer::input('post')->get(); $issues = array(); - foreach($data->dataList as $issue) + foreach($data->dataList as $index => $issue) { if(!trim($issue['title'])) continue; $issue['createdBy'] = $this->app->user->account; $issue['createdDate'] = $now; $issue['program'] = $this->session->program; + if($issue['assignedTo']) { $issue['assignedBy'] = $this->app->user->account; $issue['assignedDate'] = $now; } - foreach(explode(',', $this->config->issue->create->requiredFields) as $field) - { - $field = trim($field); - if($field and empty($issue[$field])) return dao::$errors['message'][] = sprintf($this->lang->error->notempty, $this->lang->issue->$field); - } + if(empty($issue['title'])) die(js::error(sprintf($this->lang->issue->titleEmpty, $index))); + if(empty($issue['type'])) die(js::error(sprintf($this->lang->issue->typeEmpty, $index))); + if(empty($issue['severity'])) die(js::error(sprintf($this->lang->issue->severityEmpty, $index))); $issues[] = $issue; } - foreach($issues as $issue) $this->dao->insert(TABLE_ISSUE)->data($issue)->exec(); - return true; + $issueIdList = array(); + foreach($issues as $issue) + { + $this->dao->insert(TABLE_ISSUE)->data($issue)->exec(); + $issueIdList[] = $this->dao->lastInsertId(); + } + + return $issueIdList; } /** diff --git a/module/issue/view/batchcreate.html.php b/module/issue/view/batchcreate.html.php index 8e04b654a9..455be770c8 100644 --- a/module/issue/view/batchcreate.html.php +++ b/module/issue/view/batchcreate.html.php @@ -14,8 +14,8 @@