From 09ce96d2b05a224ebbdc19ebf25f651f8c02d5ca Mon Sep 17 00:00:00 2001 From: wangyidong Date: Mon, 28 Jul 2014 03:33:26 +0000 Subject: [PATCH] * finish task #1954. --- module/story/control.php | 30 +++++ module/story/lang/en.php | 1 + module/story/lang/zh-cn.php | 1 + module/story/model.php | 20 +++ module/story/view/zerocase.html.php | 153 +++++++++++++++++++++++ module/testcase/view/caseheader.html.php | 1 + 6 files changed, 206 insertions(+) create mode 100644 module/story/view/zerocase.html.php diff --git a/module/story/control.php b/module/story/control.php index 3741af5ff3..11cb341123 100644 --- a/module/story/control.php +++ b/module/story/control.php @@ -774,6 +774,36 @@ class story extends control $this->display(); } + /** + * Show zero case story. + * + * @param int $productID + * @param string $orderBy + * @access public + * @return void + */ + public function zeroCase($productID, $orderBy = 'id_desc') + { + $this->session->set('productList', $this->app->getURI(true)); + $products = $this->loadModel('product')->getPairs(); + + $this->lang->set('menugroup.story', 'qa'); + $this->lang->story->menu = $this->lang->testcase->menu; + $this->lang->story->menuOrder = $this->lang->testcase->menuOrder; + $this->lang->story->menu->testcase['subModule'] = 'story'; + $this->loadModel('testcase')->setMenu($products, $productID); + + $this->view->title = $this->lang->story->zeroCase; + $this->view->position[] = html::a($this->createLink('testcase', 'browse', "productID=$productID"), $products[$productID]); + $this->view->position[] = $this->lang->story->zeroCase; + + $this->view->stories = $this->story->getZeroCase($productID, $orderBy); + $this->view->users = $this->user->getPairs('noletter'); + $this->view->productID = $productID; + $this->view->orderBy = $orderBy; + $this->display(); + } + /** * AJAX: get stories of a project in html select. * diff --git a/module/story/lang/en.php b/module/story/lang/en.php index 7f8ce6e775..1e4f8cf64b 100644 --- a/module/story/lang/en.php +++ b/module/story/lang/en.php @@ -30,6 +30,7 @@ $lang->story->taskCount = 'Tasks count'; $lang->story->bugs = "Bug"; $lang->story->linkStory = 'Related story'; $lang->story->export = "Export data"; +$lang->story->zeroCase = "Story of zero case"; $lang->story->reportChart = "Report"; $lang->story->batchChangePlan = "Batch change plan"; $lang->story->batchChangeStage = "Batch change stage"; diff --git a/module/story/lang/zh-cn.php b/module/story/lang/zh-cn.php index d3f3f3e898..254d02d49f 100644 --- a/module/story/lang/zh-cn.php +++ b/module/story/lang/zh-cn.php @@ -30,6 +30,7 @@ $lang->story->taskCount = '任务数'; $lang->story->bugs = "Bug"; $lang->story->linkStory = '关联需求'; $lang->story->export = "导出数据"; +$lang->story->zeroCase = "零用例需求"; $lang->story->reportChart = "统计报表"; $lang->story->batchChangePlan = "批量修改计划"; $lang->story->batchChangeStage = "批量修改阶段"; diff --git a/module/story/model.php b/module/story/model.php index 2de1a5681b..cdb06c122b 100644 --- a/module/story/model.php +++ b/module/story/model.php @@ -1276,6 +1276,26 @@ class storyModel extends model return $this->dao->select('id, version')->from(TABLE_STORY)->where('id')->in($storyID)->fetchPairs(); } + /** + * Get zero case. + * + * @param int $productID + * @access public + * @return array + */ + public function getZeroCase($productID, $orderBy = 'id_desc') + { + $allStories = $this->getProductStories($productID, 0, 'all', $orderBy); + $casedStories = $this->dao->select('DISTINCT story')->from(TABLE_CASE)->where('product')->eq($productID)->andWhere('story')->ne(0)->fetchAll('story'); + + foreach($allStories as $key => $story) + { + if(isset($casedStories[$story->id])) unset($allStories[$key]); + } + + return $allStories; + } + /** * Format stories * diff --git a/module/story/view/zerocase.html.php b/module/story/view/zerocase.html.php new file mode 100644 index 0000000000..14a217d905 --- /dev/null +++ b/module/story/view/zerocase.html.php @@ -0,0 +1,153 @@ + + * @package product + * @version $Id: browse.html.php 4909 2013-06-26 07:23:50Z chencongzhi520@gmail.com $ + * @link http://www.zentao.net + */ +?> + + +
+
+ + + + + + + + + + + + + + + + + + + $story):?> + createLink('story', 'view', "storyID=$story->id"); + $canView = common::hasPriv('story', 'view'); + ?> + + + + + + + + + + + + + + + + + + + + +
idAB);?> priAB);?> story->title);?> story->planAB);?> story->source);?> openedByAB);?> assignedToAB);?>story->estimateAB);?> statusAB);?> story->stageAB);?>actions;?>
+ + id)); else printf('%03d', $story->id);?> + story->priList[$story->pri];?>'>story->priList[$story->pri]?>title);?>planTitle;?>story->sourceList[$story->source];?>openedBy];?>assignedTo];?>estimate;?>story->statusList[$story->status];?>story->stageList[$story->stage];?> + id}"; + common::printIcon('story', 'change', $vars, $story, 'list', 'random'); + common::printIcon('story', 'review', $vars, $story, 'list', 'search'); + common::printIcon('story', 'close', $vars, $story, 'list', 'off'); + common::printIcon('story', 'edit', $vars, $story, 'list', 'pencil'); + common::printIcon('story', 'createCase', "productID=$story->product&module=0&from=¶m=0&$vars", $story, 'list', 'sitemap'); + ?> +
+
+ +
+ createLink('story', 'batchEdit', "productID=$productID&projectID=0"); + ?> +
+ edit, "onclick=\"setFormAction('$actionLink')\" $disabled");?> + + +
+ +
+
+
+
+ diff --git a/module/testcase/view/caseheader.html.php b/module/testcase/view/caseheader.html.php index f9ced8b071..baa2bd6764 100644 --- a/module/testcase/view/caseheader.html.php +++ b/module/testcase/view/caseheader.html.php @@ -44,6 +44,7 @@