From 418039eecf49a7f5695a327459801fd4a7a3f2df Mon Sep 17 00:00:00 2001 From: tianshujie98 Date: Mon, 18 Jan 2021 11:34:01 +0800 Subject: [PATCH] * Finish task #9049. --- module/project/view/story.html.php | 4 ++-- module/story/control.php | 3 ++- module/story/model.php | 36 +++++++++++++++++++++++------- 3 files changed, 32 insertions(+), 11 deletions(-) diff --git a/module/project/view/story.html.php b/module/project/view/story.html.php index 3b62c88b17..df0f6fe954 100644 --- a/module/project/view/story.html.php +++ b/module/project/view/story.html.php @@ -59,8 +59,8 @@ echo ''; echo "'; echo ''; } diff --git a/module/story/control.php b/module/story/control.php index 85005869f0..e424988ff4 100644 --- a/module/story/control.php +++ b/module/story/control.php @@ -345,7 +345,8 @@ class story extends control } else { - + $this->app->rawModule = 'project'; + $this->lang->navGroup->story = 'project'; } $this->view->project = $prj; } diff --git a/module/story/model.php b/module/story/model.php index 36453eccfc..2c4d62b89b 100644 --- a/module/story/model.php +++ b/module/story/model.php @@ -240,16 +240,15 @@ class storyModel extends model $data->verify = $story->verify; $this->dao->insert(TABLE_STORYSPEC)->data($data)->exec(); + /* Project or execution linked story. */ if($projectID != 0 and $story->status != 'draft') { - $lastOrder = (int)$this->dao->select('*')->from(TABLE_PROJECTSTORY)->where('project')->eq($projectID)->orderBy('order_desc')->limit(1)->fetch('order'); - $this->dao->insert(TABLE_PROJECTSTORY) - ->set('project')->eq($projectID) - ->set('product')->eq($this->post->product) - ->set('story')->eq($storyID) - ->set('version')->eq(1) - ->set('order')->eq($lastOrder + 1) - ->exec(); + $this->linkStory($projectID, $this->post->product, $storyID); + } + + if($projectID != $this->session->PRJ) + { + $this->linkStory($this->session->PRJ, $this->post->product, $storyID); } if(is_array($this->post->URS)) @@ -3731,6 +3730,27 @@ class storyModel extends model return $story; } + /** + * Link a story. + * + * @param int $projectID + * @param int $productID + * @param int $storyID + * @access public + * @return void + */ + public function linkStory($projectID, $productID, $storyID) + { + $lastOrder = (int)$this->dao->select('*')->from(TABLE_PROJECTSTORY)->where('project')->eq($projectID)->orderBy('order_desc')->limit(1)->fetch('order'); + $this->dao->insert(TABLE_PROJECTSTORY) + ->set('project')->eq($projectID) + ->set('product')->eq($productID) + ->set('story')->eq($storyID) + ->set('version')->eq(1) + ->set('order')->eq($lastOrder + 1) + ->exec(); + } + /** * Link stories. *