diff --git a/module/bug/model.php b/module/bug/model.php index d481824988..d5f0bf787b 100644 --- a/module/bug/model.php +++ b/module/bug/model.php @@ -283,30 +283,11 @@ class bugModel extends model */ public function createBugFromGitlabIssue($bug, $executionID) { - foreach($bug as $feild => $value) $_POST[$feild] = $value; - $now = helper::now(); - $bug = fixer::input('post') - ->setDefault('openedBy', $this->app->user->account) - ->setDefault('openedDate', $now) - ->setDefault('project,execution,story,task', 0) - ->setDefault('openedBuild', '1') // todo(dingguodong) openedBuild is hard-coded. - ->setDefault('deadline', '0000-00-00') - ->setIF($this->config->systemMode == 'new' && $this->lang->navGroup->bug != 'qa', 'project', $this->session->project) - ->setIF(strpos($this->config->bug->create->requiredFields, 'deadline') !== false, 'deadline', $bug->deadline) - ->setIF(isset($bug->assignedTo) and $bug->assignedTo != '', 'assignedDate', $now) - ->stripTags($this->config->bug->editor->create['id'], $this->config->allowedTags) - ->cleanInt('product,execution,module,severity') - ->join('openedBuild', ',') - ->join('mailto', ',') - ->remove('files, labels,uid,oldTaskID,contactListMenu') - ->remove($this->config->bug->removeFields) - ->get(); - - if($executionID != 0) - { - $bug->project = $this->dao->select('parent')->from(TABLE_EXECUTION)->where('id')->eq($executionID)->fetch('parent'); - $bug->execution = $executionID; - } + $bug->openedBy = $this->app->user->account; + $bug->openedBuild = 0; + $bug->story = 0; + $bug->task = 0; + $bug->project = $this->dao->select('parent')->from(TABLE_EXECUTION)->where('id')->eq($executionID)->fetch('parent'); $this->dao->insert(TABLE_BUG)->data($bug, $skip = 'gitlab,gitlabProject')->autoCheck()->batchCheck($this->config->bug->create->requiredFields, 'notempty')->exec(); if(!dao::isError()) diff --git a/module/story/model.php b/module/story/model.php index 5b69837f8f..ddba566108 100644 --- a/module/story/model.php +++ b/module/story/model.php @@ -358,25 +358,12 @@ class storyModel extends model */ public function createStoryFromGitlabIssue($story, $executionID) { - foreach($story as $feild => $value) $_POST[$feild] = $value; - $now = helper::now(); - $story = fixer::input('post') - ->cleanInt('product,module,pri,plan') - ->callFunc('title', 'trim') - ->add('assignedDate', 0) - ->add('version', 1) - ->add('status', 'draft') - ->setDefault('plan,verify', '') - ->setDefault('openedBy', $this->app->user->account) - ->setDefault('openedDate', $now) - ->setIF($story->assignedTo != '', 'assignedDate', $now) - ->setIF($executionID > 0, 'status', 'active') - ->setIF($executionID > 0, 'stage', 'projected') - ->join('mailto', ',') - ->stripTags($this->config->story->editor->create['id'], $this->config->allowedTags) - ->remove('files,labels,reviewer,needNotReview,newStory,uid,contactListMenu,URS') - ->remove($this->config->story->removeFields) - ->get(); + $story->status = 'active'; + $story->stage = 'projected'; + $story->openedBy = 'openedBy'; + $story->version = '1'; + + if(isset($story->execution)) unset($story->execution); $requiredFields = $this->config->story->create->requiredFields; $this->dao->insert(TABLE_STORY)->data($story, 'spec,verify,gitlab,gitlabProject')->autoCheck()->batchCheck($requiredFields, 'notempty')->exec(); diff --git a/module/task/model.php b/module/task/model.php index f01fba6664..6011759459 100644 --- a/module/task/model.php +++ b/module/task/model.php @@ -464,40 +464,18 @@ class taskModel extends model */ public function createTaskFromGitlabIssue($task, $executionID) { - foreach($task as $feild => $value) $_POST[$feild] = $value; - $requiredFields = ',' . $this->config->task->create->requiredFields . ','; - $requiredFields = trim($requiredFields, ','); - $task = fixer::input('post') - ->setDefault('execution', $executionID) - ->setDefault('estimate,left,story', 0) - ->setDefault('status', 'wait') - ->setIF($this->config->systemMode == 'new', 'project', $this->getProjectID($executionID)) - ->setIF($this->post->estimate != false, 'left', $this->post->estimate) - ->setIF($this->post->story != false, 'storyVersion', $this->loadModel('story')->getVersion($this->post->story)) - ->setDefault('estStarted', '0000-00-00') - ->setDefault('deadline', '0000-00-00') - ->setIF(strpos($requiredFields, 'estStarted') !== false, 'estStarted', helper::isZeroDate($this->post->estStarted) ? '' : $this->post->estStarted) - ->setIF(strpos($requiredFields, 'deadline') !== false, 'deadline', helper::isZeroDate($this->post->deadline) ? '' : $this->post->deadline) - ->setIF(strpos($requiredFields, 'estimate') !== false, 'estimate', $this->post->estimate) - ->setIF(strpos($requiredFields, 'left') !== false, 'left', $this->post->left) - ->setIF(strpos($requiredFields, 'story') !== false, 'story', $this->post->story) - ->setIF(is_numeric($this->post->estimate), 'estimate', (float)$this->post->estimate) - ->setIF(is_numeric($this->post->consumed), 'consumed', (float)$this->post->consumed) - ->setIF(is_numeric($this->post->left), 'left', (float)$this->post->left) - ->setDefault('openedBy', $this->app->user->account) - ->setDefault('openedDate', helper::now()) - ->cleanINT('execution,story,module') - ->stripTags($this->config->task->editor->create['id'], $this->config->allowedTags) - ->join('mailto', ',') - ->remove('after,files,labels,assignedTo,uid,storyEstimate,storyDesc,storyPri,team,teamEstimate,teamMember,multiple,teams,contactListMenu,selectTestStory,testStory,testPri,testEstStarted,testDeadline,testAssignedTo,testEstimate,sync') - ->remove($this->config->task->removeFields) - ->add('version', 1) - ->get(); + $task->version = 1; + $task->openedBy = $this->app->user->account; + $task->story = 0; + $task->module = 0; + $task->estimate = 0; + $task->estStarted = '0000-00-00'; + + if(isset($task->product)) unset($task->product); $this->dao->insert(TABLE_TASK)->data($task, $skip = 'id') ->autoCheck() - ->batchCheck($requiredFields, 'notempty') - ->checkIF($task->estimate != '', 'estimate', 'float') + ->batchCheck($this->config->task->create->requiredFields, 'notempty') ->checkIF(!helper::isZeroDate($task->deadline), 'deadline', 'ge', $task->estStarted) ->exec();