From 9855a93bf3de979cdc825501b39c457a21d9e453 Mon Sep 17 00:00:00 2001 From: wangyidong Date: Fri, 13 Jan 2017 11:12:25 +0800 Subject: [PATCH] * finish task #2850. --- module/story/model.php | 19 ++++++++++++++++++- module/story/view/view.html.php | 4 ++-- 2 files changed, 20 insertions(+), 3 deletions(-) diff --git a/module/story/model.php b/module/story/model.php index b7e065e224..77c4459253 100644 --- a/module/story/model.php +++ b/module/story/model.php @@ -466,7 +466,24 @@ class storyModel extends model ->checkIF(isset($story->closedReason) and $story->closedReason == 'duplicate', 'duplicateStory', 'notempty') ->where('id')->eq((int)$storyID)->exec(); - if(!dao::isError()) return common::createChanges($oldStory, $story); + if(!dao::isError()) + { + if($story->product != $oldStory->product) + { + $this->dao->update(TABLE_PROJECTSTORY)->set('product')->eq($story->product)->where('story')->eq($storyID)->exec(); + $storyProjects = $this->dao->select('project')->from(TABLE_PROJECTSTORY)->where('story')->eq($storyID)->orderBy('project')->fetchPairs('project', 'project'); + $linkedProjects = $this->dao->select('project')->from(TABLE_PROJECTPRODUCT)->where('project')->eq($storyProjects)->andWhere('product')->eq($story->product)->orderBy('project')->fetchPairs('project','project'); + $unlinkedProjects = array_diff($storyProjects, $linkedProjects); + foreach($unlinkedProjects as $projectID) + { + $data = new stdclass(); + $data->project = $projectID; + $data->product = $story->product; + $this->dao->insert(TABLE_PROJECTPRODUCT)->data($data)->exec(); + } + } + return common::createChanges($oldStory, $story); + } } /** diff --git a/module/story/view/view.html.php b/module/story/view/view.html.php index 48c0fbcb91..570572660b 100644 --- a/module/story/view/view.html.php +++ b/module/story/view/view.html.php @@ -198,9 +198,9 @@ story->stage;?> stages) + if($story->stages and $branches) { - foreach($story->stages as $branch => $stage) echo $branches[$branch] . ' : ' . $lang->story->stageList[$stage] . '
'; + foreach($story->stages as $branch => $stage) if(isset($branches[$branch])) echo $branches[$branch] . ' : ' . $lang->story->stageList[$stage] . '
'; } else {