diff --git a/module/testcase/ui/view.html.php b/module/testcase/ui/view.html.php index 7cfb58c78a..01a5def2ac 100644 --- a/module/testcase/ui/view.html.php +++ b/module/testcase/ui/view.html.php @@ -298,6 +298,18 @@ if($case->stage) } +if($from == 'testtask' && $case->version > $case->currentVersion) +{ + $caseChange[] = span + ( + set('title', $lang->testcase->fromTesttask), + ' (', + $lang->testcase->changed, + hasPriv('testcase', 'confirmchange') ? a(setClass('btn size-xs primary-pale mx-1 ajax-submit'), set::href($this->createLink('testcase', 'confirmchange', "caseID=$case->id&taskID=$taskID")), $lang->testcase->sync) : '', + ')' + ); +} + if(isset($case->fromCaseVersion) && $case->fromCaseVersion > $case->version && $from != 'testtask' && !empty($case->product)) { $caseChange[] = span diff --git a/module/testtask/model.php b/module/testtask/model.php index b96d4b96ea..e3fb42f880 100755 --- a/module/testtask/model.php +++ b/module/testtask/model.php @@ -952,7 +952,7 @@ class testtaskModel extends model { $orderBy = $this->addPrefixToOrderBy($orderBy); - return $this->dao->select('t2.*, t1.*, t3.title AS storyTitle, t2.status AS caseStatus')->from(TABLE_TESTRUN)->alias('t1') + return $this->dao->select('t2.*, t1.*, t2.version as caseVersion, t3.title AS storyTitle, t2.status AS caseStatus')->from(TABLE_TESTRUN)->alias('t1') ->leftJoin(TABLE_CASE)->alias('t2')->on('t1.case = t2.id') ->leftJoin(TABLE_STORY)->alias('t3')->on('t2.story = t3.id') ->where('t1.task')->eq($taskID) diff --git a/module/testtask/ui/cases.html.php b/module/testtask/ui/cases.html.php index 17d7e3f252..422b94b425 100644 --- a/module/testtask/ui/cases.html.php +++ b/module/testtask/ui/cases.html.php @@ -147,11 +147,20 @@ if($canBatchAction) $cols = $this->loadModel('datatable')->getSetting('testtask'); if(isset($cols['id']['name'])) $cols['id']['name'] = 'case'; -if(isset($cols['title']['link']['params'])) $cols['title']['link']['params'] = 'caseID={case}'; +if(isset($cols['title']['link']['params'])) $cols['title']['link']['params'] = 'caseID={case}&version={version}&from=testtask&taskID=' . $task->id; if(isset($cols['bugs']['link']['params'])) $cols['bugs']['link']['params'] = 'caseID={case}'; if(isset($cols['scene'])) $cols['scene']['map'] = $iscenes; +if(isset($cols['status'])) $cols['status']['statusMap']['changed'] = $lang->testcase->changed; $runs = initTableData($runs, $cols); +$runs = array_map( + function($run) + { + if($run->version < $run->caseVersion) $run->status = 'changed'; + return $run; + }, + $runs +); dtable (