From cb7952c4dfee822de251ea06e3c1bbb31e73c8c7 Mon Sep 17 00:00:00 2001 From: zhaoke Date: Tue, 4 Apr 2023 16:55:37 +0800 Subject: [PATCH] * Fix bug #33083. --- api/v1/entries/ztfsubmit.php | 18 ++++++++++++++++++ module/testtask/model.php | 2 +- module/testtask/view/cases.html.php | 2 +- module/zanode/control.php | 14 ++++++++++++-- 4 files changed, 32 insertions(+), 4 deletions(-) diff --git a/api/v1/entries/ztfsubmit.php b/api/v1/entries/ztfsubmit.php index 5fbd3d2a3e..b1e1c25c76 100644 --- a/api/v1/entries/ztfsubmit.php +++ b/api/v1/entries/ztfsubmit.php @@ -64,6 +64,24 @@ class ztfSubmitEntry extends baseEntry ->set('ZTFResult')->eq(json_encode($post)) ->where('id')->eq($post->task) ->exec(); + + $result = $this->dao->select('*')->from(TABLE_TESTRESULT) + ->where('id')->eq($post->task) + ->fetch(); + + if($result->run) + { + $runStatus = $result->caseResult == 'blocked' ? 'blocked' : 'normal'; + $this->dao->update(TABLE_TESTRUN) + ->set('lastRunResult')->eq($result->caseResult) + ->set('status')->eq($runStatus) + ->set('lastRunner')->eq($result->lastRunner) + ->set('lastRunDate')->eq($result->date) + ->where('id')->eq($result->run) + ->exec(); + } + + $this->dao->update(TABLE_CASE)->set('lastRunner')->eq($result->lastRunner)->set('lastRunDate')->eq($result->date)->set('lastRunResult')->eq($result->caseResult)->where('id')->eq($result->case)->exec(); } else { diff --git a/module/testtask/model.php b/module/testtask/model.php index 39d9b0e915..8dfbe8ab4b 100755 --- a/module/testtask/model.php +++ b/module/testtask/model.php @@ -1341,7 +1341,7 @@ class testtaskModel extends model $postReals = $postData->reals[$caseID]; $caseResult = $result ? $result : 'pass'; - if($postData->node) $caseResult = ''; + if(!empty($postData->node)) $caseResult = ''; $stepResults = array(); if($dbSteps) { diff --git a/module/testtask/view/cases.html.php b/module/testtask/view/cases.html.php index dc221d2424..ba06e4105a 100644 --- a/module/testtask/view/cases.html.php +++ b/module/testtask/view/cases.html.php @@ -177,7 +177,7 @@ function runAutocase() runIDList.push(case2RunMap[$(this).val()]); }); - var url = createLink('zanode', 'ajaxRunZTFScript', 'scriptID=' + automation) + var url = createLink('zanode', 'ajaxRunZTFScript', 'scriptID=' + automation + "&taskID=" + taskID) var postData = {'caseIDList' : caseIDList.join(','), 'runIDList' : runIDList.join(',')}; diff --git a/module/zanode/control.php b/module/zanode/control.php index 24e7b2fd56..ad8a27397a 100644 --- a/module/zanode/control.php +++ b/module/zanode/control.php @@ -609,17 +609,27 @@ class zanode extends control * Ajax: run ZTF script. * * @param int $scriptID + * @param string $taskID * @access public * @return void */ - public function ajaxRunZTFScript($scriptID = 0) + public function ajaxRunZTFScript($scriptID = 0, $taskID = 0) { if($_POST) { $caseIDList = $_POST['caseIDList']; $runIDList = $_POST['runIDList']; $script = $this->zanode->getAutomationByID($scriptID); - $cases = $this->loadModel('testcase')->getByList($caseIDList); + $cases = $this->loadModel('testcase')->getByList($caseIDList); + + $runs = array(); + if($taskID) + { + $runs = $this->dao->select('id, `case`')->from(TABLE_TESTRUN) + ->where('`case`')->in($caseIDList) + ->andWhere('task')->eq($taskID)->fi() + ->fetchPairs('case', 'id'); + } $caseIDListArray = explode(',', $caseIDList); $runIDListArray = explode(',', $runIDList);