From c0e429cdbf3bf5830a890fe574fe9f8ef263b109 Mon Sep 17 00:00:00 2001 From: wangyuting Date: Tue, 11 Jul 2023 09:28:26 +0800 Subject: [PATCH] * Finish latestTesttask on qastatistic block. --- db/update20.0.sql | 2 ++ module/block/ui/qastatisticblock.html.php | 38 +++++++++++++++++------ module/block/zen.php | 29 +++++++++++++---- module/testtask/model.php | 1 + 4 files changed, 54 insertions(+), 16 deletions(-) diff --git a/db/update20.0.sql b/db/update20.0.sql index 713d31cdf1..092a471db4 100644 --- a/db/update20.0.sql +++ b/db/update20.0.sql @@ -33,6 +33,8 @@ ALTER TABLE `zt_usercontact` ADD `public` tinyint(1) NOT NULL DEFAULT 0; UPDATE `zt_usercontact` AS t1, `zt_config` AS t2 SET t1.public = 1 WHERE t2.module = 'my' AND t2.section = 'global' AND t2.key = 'globalContacts' AND FIND_IN_SET(t1.id, t2.value); -- Change it for compatible with dameng. DELETE FROM `zt_config` WHERE `module` = 'my' AND `section` = 'global' AND `key` = 'globalContacts'; +ALTER TABLE `zt_testtask` ADD `realBegan` date NULL; + -- DROP TABLE IF EXISTS `zt_space`; CREATE TABLE `zt_space` ( `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, diff --git a/module/block/ui/qastatisticblock.html.php b/module/block/ui/qastatisticblock.html.php index 5b478392a5..6a0fef3c35 100644 --- a/module/block/ui/qastatisticblock.html.php +++ b/module/block/ui/qastatisticblock.html.php @@ -115,6 +115,26 @@ $getProductInfo = function(array $products, string $blockNavID, bool $longBlock) ); } + $waitTesttasks = array(); + if(!empty($product->waitTesttasks)) + { + foreach($product->waitTesttasks as $waitTesttask) + { + $waitTesttasks[] = div(set('class', 'py-1'), common::hasPriv('testtask', 'cases') ? a(set('href', createLink('testtask', 'cases', "taskID={$waitTesttask->id}")), $waitTesttask->name) : span($waitTesttask->name)); + if(count($waitTesttasks) >= 2) break; + } + } + + $doingTesttasks = array(); + if(!empty($product->doingTesttasks)) + { + foreach($product->doingTesttasks as $doingTesttask) + { + $doingTesttasks[] = div(set('class', 'py-1'), common::hasPriv('testtask', 'cases') ? a(set('href', createLink('testtask', 'cases', "taskID={$doingTesttask->id}")), $doingTesttask->name) : span($doingTesttask->name)); + if(count($doingTesttasks) >= 2) break; + } + } + $tabItems[] = div ( set('class', 'tab-pane h-full' . ($product->id == $selected ? ' active' : '')), @@ -230,7 +250,7 @@ $getProductInfo = function(array $products, string $blockNavID, bool $longBlock) ) ) ), - cell + $doingTesttasks || $waitTesttasks ? cell ( set('width', '30%'), set('class', 'py-2 px-6'), @@ -239,21 +259,19 @@ $getProductInfo = function(array $products, string $blockNavID, bool $longBlock) set('class', 'py-2'), span($lang->block->qastatistic->latestTesttask) ), - div + $doingTesttasks ? div ( set('class', 'py-2'), div(set('class', 'text-sm pb-2'), $lang->testtask->statusList['doing']), - div(set('class', 'py-1'), a('aaaa')), - div(set('class', 'py-1'), a('bbbb')), - ), - div + $doingTesttasks + ) : null, + $waitTesttasks ? div ( set('class', 'py-2'), div(set('class', 'text-sm pb-2'), $lang->testtask->statusList['wait']), - div(set('class', 'py-1'), a('aaaa')), - div(set('class', 'py-1'), a('bbbb')), - ) - ) + $waitTesttasks + ) : null + ) : null ) ); } diff --git a/module/block/zen.php b/module/block/zen.php index fb201411b2..0039f83a61 100644 --- a/module/block/zen.php +++ b/module/block/zen.php @@ -1485,11 +1485,27 @@ class blockZen extends block return; } - $productIdList = array_keys($products); - $today = date(DT_DATE1); - $yesterday = date(DT_DATE1, strtotime('yesterday')); - $testtasks = $this->dao->select('*')->from(TABLE_TESTTASK)->where('product')->in($productIdList)->andWhere('project')->ne(0)->andWhere('deleted')->eq(0)->orderBy('id')->fetchAll('product'); - $bugs = $this->dao->select("product, count(id) as total, + $productIdList = array_keys($products); + $today = date(DT_DATE1); + $yesterday = date(DT_DATE1, strtotime('yesterday')); + $doingTesttasks = $this->dao->select('product,id,name')->from(TABLE_TESTTASK) + ->where('product')->in($productIdList) + ->andWhere('project')->ne(0) + ->andWhere('status')->eq('doing') + ->andWhere('deleted')->eq(0) + ->orderBy('realBegan_asc') + ->fetchGroup('product'); + + $waitTesttasks = $this->dao->select('product,id,name')->from(TABLE_TESTTASK) + ->where('product')->in($productIdList) + ->andWhere('project')->ne(0) + ->andWhere('status')->eq('wait') + ->andWhere('deleted')->eq(0) + ->andWhere('begin')->ge(date('Y-m-d')) + ->orderBy('begin_desc') + ->fetchGroup('product'); + + $bugs = $this->dao->select("product, count(id) as total, count(IF(assignedTo = '{$this->app->user->account}', 1, null)) as assignedToMe, count(IF(status != 'closed', 1, null)) as unclosed, count(IF(status != 'closed' and status != 'resolved', 1, null)) as unresolved, @@ -1532,7 +1548,8 @@ class blockZen extends block $product->unresolvedRate = $product->total ? round($product->unresolved / $product->total * 100, 2) : 0; $product->unconfirmedRate = $product->total ? round($product->unconfirmed / $product->total * 100, 2) : 0; $product->unclosedRate = $product->total ? round($product->unclosed / $product->total * 100, 2) : 0; - $product->testtask = isset($testtasks[$productID]) ? $testtasks[$productID] : ''; + $product->waitTesttasks = isset($waitTesttasks[$productID]) ? $waitTesttasks[$productID] : ''; + $product->doingTesttasks = isset($doingTesttasks[$productID]) ? $doingTesttasks[$productID] : ''; } $this->view->products = $products; diff --git a/module/testtask/model.php b/module/testtask/model.php index b9b0af9c4f..1507d49a2d 100755 --- a/module/testtask/model.php +++ b/module/testtask/model.php @@ -827,6 +827,7 @@ class testtaskModel extends model $testtask = fixer::input('post') ->add('id', $taskID) ->add('status', 'doing') + ->add('realBegan', date('Y-m-d')) ->stripTags($this->config->testtask->editor->start['id'], $this->config->allowedTags) ->remove('comment')->get();