+
+
+ custom->flow?> +
+
+ +
+ +
+ + + diff --git a/module/story/model.php b/module/story/model.php index 8c6bc48855..0505c63f8f 100644 --- a/module/story/model.php +++ b/module/story/model.php @@ -3630,59 +3630,70 @@ class storyModel extends model */ public function getTracks($productID = 0, $branch = 0, $pager = null) { - $sourcePageID = $pager->pageID; - $requirements = $this->getProductStories($productID, $branch, 0, 'all', 'requirement', 'id_desc', true, '', $pager); - if($pager->pageID != $sourcePageID) - { - $requirements = array(); - $pager->pageID = $sourcePageID; - } + $tracks = array(); + $sourcePageID = $pager->pageID; + $excludeStories = false; - foreach($requirements as $requirement) + if($this->config->URAndSR) { - $stories = $this->getRelation($requirement->id, 'requirement'); - $stories = empty($stories) ? array() : $stories; - foreach($stories as $id => $title) + $requirements = $this->getProductStories($productID, $branch, 0, 'all', 'requirement', 'id_desc', true, '', $pager); + if($pager->pageID != $sourcePageID) { - $stories[$id] = new stdclass(); - $stories[$id]->title = $title; - $stories[$id]->cases = $this->loadModel('testcase')->getStoryCases($id); - $stories[$id]->bugs = $this->loadModel('bug')->getStoryBugs($id); - $stories[$id]->tasks = $this->loadModel('task')->getStoryTasks($id); - if(isset($this->config->maxVersion)) - { - $stories[$id]->designs = $this->dao->select('id, name')->from(TABLE_DESIGN)->where('story')->eq($id)->fetchAll('id'); - $stories[$id]->revisions = $this->dao->select('BID, extra')->from(TABLE_RELATION) - ->where('AType')->eq('design') - ->andWhere('BType')->eq('commit') - ->andWhere('AID')->in(array_keys($stories[$id]->designs)) - ->fetchPairs(); - } + $requirements = array(); + $pager->pageID = $sourcePageID; } - $requirement->track = $stories; + foreach($requirements as $requirement) + { + $stories = $this->getRelation($requirement->id, 'requirement'); + $stories = empty($stories) ? array() : $stories; + foreach($stories as $id => $title) + { + $stories[$id] = new stdclass(); + $stories[$id]->title = $title; + $stories[$id]->cases = $this->loadModel('testcase')->getStoryCases($id); + $stories[$id]->bugs = $this->loadModel('bug')->getStoryBugs($id); + $stories[$id]->tasks = $this->loadModel('task')->getStoryTasks($id); + if(isset($this->config->maxVersion)) + { + $stories[$id]->designs = $this->dao->select('id, name')->from(TABLE_DESIGN)->where('story')->eq($id)->fetchAll('id'); + $stories[$id]->revisions = $this->dao->select('BID, extra')->from(TABLE_RELATION) + ->where('AType')->eq('design') + ->andWhere('BType')->eq('commit') + ->andWhere('AID')->in(array_keys($stories[$id]->designs)) + ->fetchPairs(); + } + } + + $requirement->track = $stories; + } + + $tracks = $requirements; + + /* Get no requirements story. */ + $excludeStories = $this->dao->select('BID')->from(TABLE_RELATION) + ->where('AType')->eq('requirement') + ->andWhere('BType')->eq('story') + ->andWhere('relation')->eq('subdivideinto') + ->andWhere('product')->eq($productID) + ->fetchPairs('BID', 'BID'); + $stories = $this->getProductStories($productID, 0, 0, 'all', 'story', 'id_desc', true, $excludeStories); + if($stories) $pager->recTotal += 1; + } + else + { + $stories = $this->getProductStories($productID, 0, 0, 'all', 'story', 'id_desc', true, $excludeStories, $pager); } - /* Get no requirements story. */ - $subdividedStories = $this->dao->select('BID')->from(TABLE_RELATION) - ->where('AType')->eq('requirement') - ->andWhere('BType')->eq('story') - ->andWhere('relation')->eq('subdivideinto') - ->andWhere('product')->eq($productID) - ->fetchPairs('BID', 'BID'); - - $stories = $this->getProductStories($productID, 0, 0, 'all', 'story', 'id_desc', true, $subdividedStories); - if($stories) $pager->recTotal += 1; - - if(count($requirements) < $pager->recPerPage) + if(count($tracks) < $pager->recPerPage) { foreach($stories as $id => $story) { $stories[$id] = new stdclass(); - $stories[$id]->title = $story->title; - $stories[$id]->cases = $this->loadModel('testcase')->getStoryCases($id); - $stories[$id]->bugs = $this->loadModel('bug')->getStoryBugs($id); - $stories[$id]->tasks = $this->loadModel('task')->getStoryTasks($id); + $stories[$id]->title = $story->title; + $stories[$id]->cases = $this->loadModel('testcase')->getStoryCases($id); + $stories[$id]->bugs = $this->loadModel('bug')->getStoryBugs($id); + $stories[$id]->tasks = $this->loadModel('task')->getStoryTasks($id); if(isset($this->config->maxVersion)) { $stories[$id]->designs = $this->dao->select('id, name')->from(TABLE_DESIGN)->where('story')->eq($id)->fetchAll('id'); @@ -3694,10 +3705,10 @@ class storyModel extends model } } - $requirements['noRequirement'] = $stories; + $tracks['noRequirement'] = $stories; } - return $requirements; + return $tracks; } /** diff --git a/module/story/view/create.html.php b/module/story/view/create.html.php index 1ba89b88e9..af4f63611d 100644 --- a/module/story/view/create.html.php +++ b/module/story/view/create.html.php @@ -122,7 +122,7 @@ - + config->URAndSR):?> story->requirement;?> diff --git a/module/story/view/track.html.php b/module/story/view/track.html.php index f58bb53ee4..8ec9a00f8a 100644 --- a/module/story/view/track.html.php +++ b/module/story/view/track.html.php @@ -24,6 +24,7 @@ + URAndSR):?> + maxVersion)):?> @@ -55,12 +57,14 @@ track;?> + URAndSR):?> + $story):?> diff --git a/module/story/view/view.html.php b/module/story/view/view.html.php index 9280aea0d7..544a3fa3cd 100644 --- a/module/story/view/view.html.php +++ b/module/story/view/view.html.php @@ -398,13 +398,16 @@
+ config->URAndSR):?>
    story->unlink . $linkLang, '', "class='btn btn-info' id='unlinkStory'");?>
+ type == 'story'):?> -
+
    tasks as $projectTasks)
> app->rawModule == 'projectstory'): ?> story->story;?> story->tasks;?>
story->statusList, $requirement->status);?> story->noRequirement : html::a($this->createLink($module, 'view', "storyID=$requirement->id"), $requirement->title, '', "title=$requirement->title data-group='$openGroup'");?>