diff --git a/db/update18.8.sql b/db/update18.8.sql new file mode 100644 index 0000000000..12f0099f0c --- /dev/null +++ b/db/update18.8.sql @@ -0,0 +1 @@ +ALTER TABLE `zt_testtask` ADD COLUMN `members` text NULL; diff --git a/module/testtask/lang/de.php b/module/testtask/lang/de.php index 64d2980176..ff4225f2ad 100644 --- a/module/testtask/lang/de.php +++ b/module/testtask/lang/de.php @@ -58,6 +58,7 @@ $lang->testtask->run = 'Test Run ID'; $lang->testtask->job = 'Job'; $lang->testtask->compile = 'Compile'; $lang->testtask->duration = 'Duration'; +$lang->testtask->myInvolved = 'Involved'; $lang->testtask->viewAction = "View Request"; $lang->testtask->casesAction = 'Browse Cases List'; @@ -76,6 +77,7 @@ $lang->testtask->execution = $lang->execution->common; $lang->testtask->type = 'Typ'; $lang->testtask->build = 'Build'; $lang->testtask->owner = 'Besitzer'; +$lang->testtask->members = 'Participant'; $lang->testtask->executor = 'Executor'; $lang->testtask->execTime = 'Exec Time'; $lang->testtask->pri = 'Priorität'; @@ -202,6 +204,7 @@ $lang->testtask->report->options->width = 500; $lang->testtask->report->options->height = 140; $lang->testtask->featureBar['browse']['totalStatus'] = $lang->testtask->totalStatus; +$lang->testtask->featureBar['browse']['myinvolved'] = $lang->testtask->myInvolved; $lang->testtask->featureBar['browse']['wait'] = $lang->testtask->wait; $lang->testtask->featureBar['browse']['doing'] = $lang->testtask->testing; $lang->testtask->featureBar['browse']['blocked'] = $lang->testtask->blocked; diff --git a/module/testtask/lang/en.php b/module/testtask/lang/en.php index 979ee97f18..19c48df28e 100644 --- a/module/testtask/lang/en.php +++ b/module/testtask/lang/en.php @@ -58,6 +58,7 @@ $lang->testtask->run = 'Test Run ID'; $lang->testtask->job = 'Job'; $lang->testtask->compile = 'Compile'; $lang->testtask->duration = 'Duration'; +$lang->testtask->myInvolved = 'Involved'; $lang->testtask->viewAction = "View Request"; $lang->testtask->casesAction = 'Browse Cases List'; @@ -76,6 +77,7 @@ $lang->testtask->execution = $lang->execution->common; $lang->testtask->type = 'Type'; $lang->testtask->build = 'Build'; $lang->testtask->owner = 'Owner'; +$lang->testtask->members = 'Participant'; $lang->testtask->executor = 'Executor'; $lang->testtask->execTime = 'Exec Time'; $lang->testtask->pri = 'Priority'; @@ -202,6 +204,7 @@ $lang->testtask->report->options->width = 500; $lang->testtask->report->options->height = 140; $lang->testtask->featureBar['browse']['totalStatus'] = $lang->testtask->totalStatus; +$lang->testtask->featureBar['browse']['myinvolved'] = $lang->testtask->myInvolved; $lang->testtask->featureBar['browse']['wait'] = $lang->testtask->wait; $lang->testtask->featureBar['browse']['doing'] = $lang->testtask->testing; $lang->testtask->featureBar['browse']['blocked'] = $lang->testtask->blocked; diff --git a/module/testtask/lang/fr.php b/module/testtask/lang/fr.php index 49f5ebca35..f3f747fa3a 100644 --- a/module/testtask/lang/fr.php +++ b/module/testtask/lang/fr.php @@ -58,6 +58,7 @@ $lang->testtask->run = 'Test Run ID'; $lang->testtask->job = 'Job'; $lang->testtask->compile = 'Compile'; $lang->testtask->duration = 'Duration'; +$lang->testtask->myInvolved = 'Involved'; $lang->testtask->viewAction = "View Request"; $lang->testtask->casesAction = 'Browse Cases List'; @@ -76,6 +77,7 @@ $lang->testtask->execution = $lang->execution->common; $lang->testtask->type = 'Type'; $lang->testtask->build = 'Build'; $lang->testtask->owner = 'Owner'; +$lang->testtask->members = 'Participant'; $lang->testtask->executor = 'Executeur'; $lang->testtask->execTime = 'Durée Exec'; $lang->testtask->pri = 'Priorité'; @@ -202,6 +204,7 @@ $lang->testtask->report->options->width = 500; $lang->testtask->report->options->height = 140; $lang->testtask->featureBar['browse']['totalStatus'] = $lang->testtask->totalStatus; +$lang->testtask->featureBar['browse']['myinvolved'] = $lang->testtask->myInvolved; $lang->testtask->featureBar['browse']['wait'] = $lang->testtask->wait; $lang->testtask->featureBar['browse']['doing'] = $lang->testtask->testing; $lang->testtask->featureBar['browse']['blocked'] = $lang->testtask->blocked; diff --git a/module/testtask/lang/zh-cn.php b/module/testtask/lang/zh-cn.php index cb9163b533..a020a18c8b 100644 --- a/module/testtask/lang/zh-cn.php +++ b/module/testtask/lang/zh-cn.php @@ -58,6 +58,7 @@ $lang->testtask->run = '执行编号'; $lang->testtask->job = '构建任务'; $lang->testtask->compile = '构建'; $lang->testtask->duration = '持续时间'; +$lang->testtask->myInvolved = '由我参与'; $lang->testtask->viewAction = "测试单概况"; $lang->testtask->casesAction = '浏览用例列表'; @@ -76,6 +77,7 @@ $lang->testtask->execution = '所属' . $lang->execution->common; $lang->testtask->type = '测试类型'; $lang->testtask->build = '版本'; $lang->testtask->owner = '负责人'; +$lang->testtask->members = '参与人'; $lang->testtask->executor = '执行人'; $lang->testtask->execTime = '执行时间'; $lang->testtask->pri = '优先级'; @@ -202,6 +204,7 @@ $lang->testtask->report->options->width = 500; $lang->testtask->report->options->height = 140; $lang->testtask->featureBar['browse']['totalStatus'] = $lang->testtask->totalStatus; +$lang->testtask->featureBar['browse']['myinvolved'] = $lang->testtask->myInvolved; $lang->testtask->featureBar['browse']['wait'] = $lang->testtask->wait; $lang->testtask->featureBar['browse']['doing'] = $lang->testtask->testing; $lang->testtask->featureBar['browse']['blocked'] = $lang->testtask->blocked; diff --git a/module/testtask/model.php b/module/testtask/model.php index 31de537a02..77c691bc7c 100755 --- a/module/testtask/model.php +++ b/module/testtask/model.php @@ -36,8 +36,10 @@ class testtaskModel extends model ->stripTags($this->config->testtask->editor->create['id'], $this->config->allowedTags) ->join('mailto', ',') ->join('type', ',') + ->join('members', ',') ->remove('files,labels,uid,contactListMenu') ->get(); + $task->members = trim($task->members, ','); $task = $this->loadModel('file')->processImgURL($task, $this->config->testtask->editor->create['id'], $this->post->uid); $this->dao->insert(TABLE_TESTTASK)->data($task) @@ -87,8 +89,9 @@ class testtaskModel extends model ->beginIF(!$this->app->user->admin)->andWhere('t1.execution')->in("0,{$this->app->user->view->sprints}")->fi() ->beginIF($scopeAndStatus[0] == 'local')->andWhere('t1.product')->eq((int)$productID)->fi() ->beginIF($scopeAndStatus[0] == 'all')->andWhere('t1.product')->in($products)->fi() + ->beginIF(strtolower($scopeAndStatus[1]) == 'myinvolved')->andWhere("FIND_IN_SET('{$this->app->user->account}', t1.members)")->fi() ->beginIF(strtolower($scopeAndStatus[1]) == 'totalstatus')->andWhere('t1.status')->in('blocked,doing,wait,done')->fi() - ->beginIF(!in_array(strtolower($scopeAndStatus[1]), array('totalstatus', 'review'), true))->andWhere('t1.status')->eq($scopeAndStatus[1])->fi() + ->beginIF(!in_array(strtolower($scopeAndStatus[1]), array('totalstatus', 'review', 'myinvolved'), true))->andWhere('t1.status')->eq($scopeAndStatus[1])->fi() ->beginIF($branch !== 'all')->andWhere("CONCAT(',', t4.branch, ',')")->like("%,$branch,%")->fi() ->beginIF($beginTime)->andWhere('t1.begin')->ge($beginTime)->fi() ->beginIF($endTime)->andWhere('t1.end')->le($endTime)->fi() @@ -105,6 +108,7 @@ class testtaskModel extends model ->orderBy($orderBy) ->page($pager) ->fetchAll('id'); + foreach($tasks as $taskID => $task) { if($task->multiple) @@ -776,8 +780,10 @@ class testtaskModel extends model ->stripTags($this->config->testtask->editor->edit['id'], $this->config->allowedTags) ->join('mailto', ',') ->join('type', ',') + ->join('members', ',') ->remove('files,labels,uid,comment,contactListMenu') ->get(); + $task->members = trim($task->members, ','); /* Fix bug #35419. */ $execution = $this->loadModel('execution')->getByID($task->execution); diff --git a/module/testtask/view/browse.html.php b/module/testtask/view/browse.html.php index c9c1186c84..44d8af388b 100644 --- a/module/testtask/view/browse.html.php +++ b/module/testtask/view/browse.html.php @@ -78,6 +78,7 @@ $status = strtolower($status); testtask->execution);?> statusAB);?> testtask->owner);?> + testtask->members);?> testtask->begin);?> testtask->end);?> owner);?> + + members) as $member) $members[] = zget($users, $member);?> + + begin?> end?> " . $this->loadModel('flow')->getFieldValue($extendField, $task) . "";?> diff --git a/module/testtask/view/create.html.php b/module/testtask/view/create.html.php index 8fff503546..79444c67d6 100644 --- a/module/testtask/view/create.html.php +++ b/module/testtask/view/create.html.php @@ -71,6 +71,10 @@ + + testtask->members;?> + + testtask->begin;?> diff --git a/module/testtask/view/edit.html.php b/module/testtask/view/edit.html.php index 670e466275..d138517023 100644 --- a/module/testtask/view/edit.html.php +++ b/module/testtask/view/edit.html.php @@ -56,6 +56,12 @@ + + testtask->members;?> + + members, "class='form-control picker-select' multiple");?> + + testtask->begin;?> diff --git a/module/upgrade/model.php b/module/upgrade/model.php index 1cef9f10b4..e8264ae545 100644 --- a/module/upgrade/model.php +++ b/module/upgrade/model.php @@ -709,6 +709,10 @@ class upgradeModel extends model } $this->processHistoryDataForMetric(); break; + case '18_8': + /* Upgrade members for testtask. */ + $this->upgradeTesttaskMembers(); + break; } $this->deletePatch(); @@ -9880,4 +9884,23 @@ class upgradeModel extends model } $this->dao->commit(); } + + /** + * Upgrade testtask members. + * + * @access public + * @return void + */ + public function upgradeTesttaskMembers() + { + $memberGroup = $this->dao->select('task,lastRunner')->from(TABLE_TESTRUN) + ->where('lastRunner')->ne('') + ->fetchGroup('task', 'lastRunner'); + + foreach($memberGroup as $taskID => $members) + { + $members = implode(',', array_keys($members)); + $this->dao->update(TABLE_TESTTASK)->set('members')->eq($members)->where('id')->eq($taskID)->exec(); + } + } }