From 0cf5462fecbbdc98a2e87b8c421f104dccedd0b2 Mon Sep 17 00:00:00 2001 From: "chencongzhi520@gmail.com" Date: Sat, 22 Oct 2011 06:27:14 +0000 Subject: [PATCH] + finish task#576 --- module/bug/control.php | 7 +++++++ module/bug/model.php | 9 +++++++-- module/testcase/view/browse.html.php | 3 ++- module/testcase/view/view.html.php | 1 + 4 files changed, 17 insertions(+), 3 deletions(-) diff --git a/module/bug/control.php b/module/bug/control.php index afb590054e..2f79006739 100644 --- a/module/bug/control.php +++ b/module/bug/control.php @@ -347,6 +347,13 @@ class bug extends control if($runID > 0) $resultID = $this->dao->select('id')->from(TABLE_TESTRESULT)->where('run')->eq($runID)->orderBy('id desc')->limit(1)->fetch('id'); if(isset($resultID) and $resultID > 0) extract($this->bug->getBugInfoFromResult($resultID)); + /* If set caseID and runID='', get the last result info as the template. */ + if($caseID > 0 && $runID == '') + { + $resultID = $this->dao->select('id')->from(TABLE_TESTRESULT)->where('`case`')->eq($caseID)->orderBy('date desc')->limit(1)->fetch('id'); + if(isset($resultID) and $resultID > 0) extract($this->bug->getBugInfoFromResult($resultID, $caseID, $version)); + } + /* If bugID setted, use this bug as template. */ if(isset($bugID)) { diff --git a/module/bug/model.php b/module/bug/model.php index db95f9254d..e18be2707b 100644 --- a/module/bug/model.php +++ b/module/bug/model.php @@ -353,16 +353,21 @@ class bugModel extends model * Get bug info from a result. * * @param int $resultID + * @param int $caseID + * @param int $version * @access public * @return array */ - public function getBugInfoFromResult($resultID) + public function getBugInfoFromResult($resultID, $caseID = 0, $version = 0) { $title = ''; $bugSteps = ''; $result = $this->dao->findById($resultID)->from(TABLE_TESTRESULT)->fetch(); - $run = $this->loadModel('testtask')->getRunById($result->run); + if($caseID > 0) + $run->case = $this->loadModel('testcase')->getById($caseID, $version); + else + $run = $this->loadModel('testtask')->getRunById($result->run); if($result and $result->caseResult == 'fail') { $title = $run->case->title; diff --git a/module/testcase/view/browse.html.php b/module/testcase/view/browse.html.php index f2b06796af..bfb1d2a723 100644 --- a/module/testcase/view/browse.html.php +++ b/module/testcase/view/browse.html.php @@ -63,7 +63,7 @@ var moduleID = ''; testtask->lastRun);?> testtask->lastResult);?> statusAB);?> - actions;?> + actions;?> @@ -87,6 +87,7 @@ var moduleID = ''; common::printLink('testcase', 'delete', "caseID=$case->id", $lang->delete, 'hiddenwin'); common::printLink('testtask', 'runCase', "runID=0&extras=caseID=$case->id", $this->app->loadLang('testtask')->testtask->runCase, '', 'class="runcase"'); common::printLink('testtask', 'results', "runID=0&extras=caseID=$case->id,version=$case->version", $lang->testtask->results, '', 'class="results"'); + if($case->lastResult == 'fail') common::printLink('bug', 'create', "product=$case->product&extra=caseID=$case->id,version=$case->version,runID=", $lang->testtask->createBug); ?> diff --git a/module/testcase/view/view.html.php b/module/testcase/view/view.html.php index 75f195b2e4..27f35336bb 100644 --- a/module/testcase/view/view.html.php +++ b/module/testcase/view/view.html.php @@ -21,6 +21,7 @@ { common::printLink('testtask', 'runCase', "runID=0&extras=version=$currentVersion,caseID=$case->id", $this->app->loadLang('testtask')->testtask->runCase, '', 'class="runcase"'); common::printLink('testtask', 'results', "runID=0&extras=caseID=$case->id,version=$case->version", $lang->testtask->results, '', 'class="results"'); + if($case->lastResult == 'fail') common::printLink('bug', 'create', "product=$case->product&extra=caseID=$case->id,version=$case->version,runID=", $lang->testtask->createBug); common::printLink('testcase', 'edit', "caseID=$case->id", $lang->testcase->buttonEdit); common::printLink('testcase', 'create', "productID=$case->product&moduleID=$case->module&testcaseID=$case->id", $lang->copy); common::printLink('testcase', 'delete', "caseID=$case->id", $lang->delete, 'hiddenwin');