From 665f491309b86a86fdc6ddc0d80f5ac08623207e Mon Sep 17 00:00:00 2001 From: xieqiyu Date: Fri, 23 Aug 2024 16:56:49 +0800 Subject: [PATCH] * [task#126383,doing,3.5h] Add the tutorial of manageTest. --- module/testreport/control.php | 11 +- module/testreport/model.php | 2 + module/testtask/model.php | 12 ++ module/testtask/ui/cases.html.php | 2 +- module/tutorial/config/scrumProjectManage.php | 118 ++++++++++++++- module/tutorial/lang/zh-cn.php | 52 +++++++ module/tutorial/model.php | 138 +++++++++++++++++- 7 files changed, 325 insertions(+), 10 deletions(-) diff --git a/module/testreport/control.php b/module/testreport/control.php index bba8007b3c..3aab7384ca 100644 --- a/module/testreport/control.php +++ b/module/testreport/control.php @@ -58,8 +58,15 @@ class testreport extends control } else { - $objectID = $this->session->{$tab}; - $products = $this->product->getProducts($objectID, 'all', '', false); + if(common::isTutorialMode()) + { + $products = $this->loadModel('tutorial')->getProductStats(); + } + else + { + $objectID = $this->session->{$tab}; + $products = $this->product->getProducts($objectID, 'all', '', false); + } } if(empty($products) && !isInModal() && (helper::isAjaxRequest('zin') || helper::isAjaxRequest('fetch'))) $this->locate($this->createLink('product', 'showErrorNone', "moduleName={$tab}&activeMenu=testreport&objectID=$objectID")); } diff --git a/module/testreport/model.php b/module/testreport/model.php index fd85591c99..4eef4485af 100644 --- a/module/testreport/model.php +++ b/module/testreport/model.php @@ -94,6 +94,8 @@ class testreportModel extends model */ public function getList(int $objectID, string $objectType, int $extra = 0, string $orderBy = 'id_desc', object $pager = null): array { + if(common::isTutorialMode()) return $this->loadModel('tutorial')->getTestReports(); + return $this->dao->select('*')->from(TABLE_TESTREPORT) ->where('deleted')->eq(0) ->beginIF($objectType == 'execution')->andWhere('execution')->eq($objectID)->fi() diff --git a/module/testtask/model.php b/module/testtask/model.php index 2bb21af88c..1ba36bf15a 100755 --- a/module/testtask/model.php +++ b/module/testtask/model.php @@ -57,6 +57,8 @@ class testtaskModel extends model */ public function getProductTasks(int $productID, string $branch = 'all', string $type = '', string $begin = '', string $end = '', string $orderBy = 'id_desc', object $pager = null): array { + if(common::isTutorialMode()) return $this->loadModel('tutorial')->getTesttasks(); + $scopeAndStatus = explode(',', $type); $scope = !empty($scopeAndStatus[0]) ? $scopeAndStatus[0] : ''; $status = !empty($scopeAndStatus[1]) ? $scopeAndStatus[1] : ''; @@ -181,6 +183,8 @@ class testtaskModel extends model */ public function getExecutionTasks(int $executionID, string $objectType = 'execution', string $orderBy = 'id_desc', object $pager = null): array { + if(common::isTutorialMode()) return $this->loadModel('tutorial')->getTesttasks(); + return $this->dao->select('t1.*, t2.name AS buildName, t3.name AS productName') ->from(TABLE_TESTTASK)->alias('t1') ->leftJoin(TABLE_BUILD)->alias('t2')->on('t1.build = t2.id') @@ -243,6 +247,8 @@ class testtaskModel extends model */ public function getPairsByList(array $taskIdList): array { + if(common::isTutorialMode()) return $this->loadModel('tutorial')->getTesttaskPairs(); + return $this->dao->select('id,name')->from(TABLE_TESTTASK)->where('id')->in($taskIdList)->fetchPairs(); } @@ -257,6 +263,8 @@ class testtaskModel extends model */ public function getByID(int $testtaskID, bool $setImgSize = false): object|false { + if(common::isTutorialMode()) return $this->loadModel('tutorial')->getTesttask(); + $testtask = $this->dao->select('*')->from(TABLE_TESTTASK)->where('id')->eq($testtaskID)->fetch(); if(!$testtask) return false; @@ -380,6 +388,8 @@ class testtaskModel extends model */ public function getAllLinkableCases(object $task, string $query = '', array $linkedCases = array(), object $pager = null): array { + if(common::isTutorialMode()) return $this->loadModel('tutorial')->getCases(); + return $this->dao->select('*')->from(TABLE_CASE) ->where('deleted')->eq('0') ->andWhere('status')->ne('wait') @@ -1104,6 +1114,8 @@ class testtaskModel extends model */ public function getTaskCases(int $productID, string $browseType, int $queryID, int $moduleID, string $sort, object $pager = null, object $task = null): array { + if(common::isTutorialMode()) return $this->loadModel('tutorial')->getCases(); + $modules = $moduleID ? $this->loadModel('tree')->getAllChildId($moduleID) : array(); $browseType = ($browseType == 'bymodule' && $this->session->taskCaseBrowseType && $this->session->taskCaseBrowseType != 'bysearch') ? $this->session->taskCaseBrowseType : $browseType; $browseType = strtolower($browseType); diff --git a/module/testtask/ui/cases.html.php b/module/testtask/ui/cases.html.php index c81ded854d..a796d38a2a 100644 --- a/module/testtask/ui/cases.html.php +++ b/module/testtask/ui/cases.html.php @@ -88,7 +88,7 @@ toolbar ), $canLinkCase ? btn ( - setClass('ghost'), + setClass('ghost linkCase-btn'), set::icon('link'), set::url(inlink('linkCase', "taskID={$task->id}")), set('data-app', $app->tab), diff --git a/module/tutorial/config/scrumProjectManage.php b/module/tutorial/config/scrumProjectManage.php index 0ce7e4abb4..1dc95ea57f 100644 --- a/module/tutorial/config/scrumProjectManage.php +++ b/module/tutorial/config/scrumProjectManage.php @@ -6,7 +6,7 @@ $scrumProjectManage->name = 'scrumProjectManage'; $scrumProjectManage->title = $lang->tutorial->scrumProjectManage->title; $scrumProjectManage->icon = 'project text-special'; $scrumProjectManage->type = 'basic'; -$scrumProjectManage->modules = 'project,execution,build,task'; +$scrumProjectManage->modules = 'project,execution,build,task,bug,testreport'; $scrumProjectManage->app = 'project'; $scrumProjectManage->tasks = array(); @@ -473,6 +473,7 @@ $scrumProjectManage->tasks['manageTest']['steps'][] = array( $scrumProjectManage->tasks['manageTest']['steps'][] = array( 'type' => 'form', 'page' => 'bug-create', + 'app' => 'qa', 'url' => array('bug', 'create', 'productID=1'), 'title' => $lang->tutorial->scrumProjectManage->manageTest->step12->name ); @@ -480,7 +481,122 @@ $scrumProjectManage->tasks['manageTest']['steps'][] = array( $scrumProjectManage->tasks['manageTest']['steps'][] = array( 'type' => 'saveForm', 'page' => 'bug-create', + 'app' => 'qa', 'title' => $lang->tutorial->scrumProjectManage->manageTest->step13->name ); +$scrumProjectManage->tasks['manageTest']['steps'][] = array( + 'type' => 'clickMainNavbar', + 'target' => 'testtask', + 'page' => 'execution-testcase', + 'url' => array('execution', 'testcase', 'executionID=3'), + 'app' => 'execution', + 'title' => $lang->tutorial->scrumProjectManage->manageTest->step14->name, + 'desc' => $lang->tutorial->scrumProjectManage->manageTest->step14->desc +); + +$scrumProjectManage->tasks['manageTest']['steps'][] = array( + 'type' => 'click', + 'target' => '#actionBar a', + 'page' => 'execution-testtask', + 'title' => $lang->tutorial->scrumProjectManage->manageTest->step15->name, + 'desc' => $lang->tutorial->scrumProjectManage->manageTest->step15->desc +); + +$scrumProjectManage->tasks['manageTest']['steps'][] = array( + 'type' => 'form', + 'page' => 'testtask-create', + 'title' => $lang->tutorial->scrumProjectManage->manageTest->step16->name +); + +$scrumProjectManage->tasks['manageTest']['steps'][] = array( + 'type' => 'saveForm', + 'page' => 'testtask-create', + 'title' => $lang->tutorial->scrumProjectManage->manageTest->step17->name, + 'desc' => $lang->tutorial->scrumProjectManage->manageTest->step17->desc +); + +$scrumProjectManage->tasks['manageTest']['steps'][] = array( + 'type' => 'click', + 'target' => 'div.dtable div[data-col="name"][data-row="1"] a', + 'page' => 'execution-testtask', + 'url' => array('execution', 'testtask', 'executionID=3'), + 'title' => $lang->tutorial->scrumProjectManage->manageTest->step18->name, + 'desc' => $lang->tutorial->scrumProjectManage->manageTest->step18->desc +); + +$scrumProjectManage->tasks['manageTest']['steps'][] = array( + 'type' => 'click', + 'target' => '#actionBar a.linkCase-btn', + 'page' => 'testtask-cases', + 'title' => $lang->tutorial->scrumProjectManage->manageTest->step19->name, + 'desc' => $lang->tutorial->scrumProjectManage->manageTest->step19->desc +); + +$scrumProjectManage->tasks['manageTest']['steps'][] = array( + 'type' => 'selectRow', + 'target' => 'div.dtable', + 'page' => 'testtask-linkCase', + 'title' => $lang->tutorial->scrumProjectManage->manageTest->step20->name +); + +$scrumProjectManage->tasks['manageTest']['steps'][] = array( + 'type' => 'click', + 'target' => 'div.dtable-footer nav.toolbar button', + 'page' => 'testtask-linkCase', + 'title' => $lang->tutorial->scrumProjectManage->manageTest->step21->name, + 'desc' => $lang->tutorial->scrumProjectManage->manageTest->step21->desc +); + +$scrumProjectManage->tasks['manageTest']['steps'][] = array( + 'type' => 'clickMainNavbar', + 'target' => 'testtask', + 'page' => 'testtask-cases', + 'url' => array('testtask', 'cases', 'taskID=1'), + 'title' => $lang->tutorial->scrumProjectManage->manageTest->step22->name, + 'desc' => $lang->tutorial->scrumProjectManage->manageTest->step22->desc +); + +$scrumProjectManage->tasks['manageTest']['steps'][] = array( + 'type' => 'selectRow', + 'target' => 'div.dtable', + 'page' => 'execution-testtask', + 'title' => $lang->tutorial->scrumProjectManage->manageTest->step23->name +); + +$scrumProjectManage->tasks['manageTest']['steps'][] = array( + 'type' => 'click', + 'target' => 'div.dtable-footer nav.toolbar button', + 'page' => 'execution-testtask', + 'app' => 'execution', + 'title' => $lang->tutorial->scrumProjectManage->manageTest->step24->name, + 'desc' => $lang->tutorial->scrumProjectManage->manageTest->step24->desc +); + +$scrumProjectManage->tasks['manageTest']['steps'][] = array( + 'type' => 'form', + 'page' => 'testreport-create', + 'app' => 'qa', + 'url' => array('testreport', 'create', 'executionID=3'), + 'title' => $lang->tutorial->scrumProjectManage->manageTest->step25->name +); + +$scrumProjectManage->tasks['manageTest']['steps'][] = array( + 'type' => 'saveForm', + 'page' => 'testreport-create', + 'app' => 'qa', + 'title' => $lang->tutorial->scrumProjectManage->manageTest->step26->name, + 'desc' => $lang->tutorial->scrumProjectManage->manageTest->step26->desc +); + +$scrumProjectManage->tasks['manageTest']['steps'][] = array( + 'type' => 'clickMainNavbar', + 'target' => 'testreport', + 'page' => 'execution-testtask', + 'app' => 'execution', + 'url' => array('execution', 'testtask', 'executionID=3'), + 'title' => $lang->tutorial->scrumProjectManage->manageTest->step27->name, + 'desc' => $lang->tutorial->scrumProjectManage->manageTest->step27->desc +); + $config->tutorial->guides[$scrumProjectManage->name] = $scrumProjectManage; diff --git a/module/tutorial/lang/zh-cn.php b/module/tutorial/lang/zh-cn.php index a4a348f15b..449f3b6ca7 100644 --- a/module/tutorial/lang/zh-cn.php +++ b/module/tutorial/lang/zh-cn.php @@ -321,3 +321,55 @@ $lang->tutorial->scrumProjectManage->manageTest->step12->name = '填写表单'; $lang->tutorial->scrumProjectManage->manageTest->step13 = new stdClass(); $lang->tutorial->scrumProjectManage->manageTest->step13->name = '保存表单'; + +$lang->tutorial->scrumProjectManage->manageTest->step14 = new stdClass(); +$lang->tutorial->scrumProjectManage->manageTest->step14->name = '点击测试单'; +$lang->tutorial->scrumProjectManage->manageTest->step14->desc = '点击维护测试单'; + +$lang->tutorial->scrumProjectManage->manageTest->step15 = new stdClass(); +$lang->tutorial->scrumProjectManage->manageTest->step15->name = '点击提交测试'; +$lang->tutorial->scrumProjectManage->manageTest->step15->desc = '可以在这里创建测试单'; + +$lang->tutorial->scrumProjectManage->manageTest->step16 = new stdClass(); +$lang->tutorial->scrumProjectManage->manageTest->step16->name = '填写表单'; + +$lang->tutorial->scrumProjectManage->manageTest->step17 = new stdClass(); +$lang->tutorial->scrumProjectManage->manageTest->step17->name = '保存表单'; +$lang->tutorial->scrumProjectManage->manageTest->step17->desc = '保存后回到测试单列表中'; + +$lang->tutorial->scrumProjectManage->manageTest->step18 = new stdClass(); +$lang->tutorial->scrumProjectManage->manageTest->step18->name = '点击测试单名称'; +$lang->tutorial->scrumProjectManage->manageTest->step18->desc = '可以在这里查看测试单详情列表'; + +$lang->tutorial->scrumProjectManage->manageTest->step19 = new stdClass(); +$lang->tutorial->scrumProjectManage->manageTest->step19->name = '点击关联用例'; +$lang->tutorial->scrumProjectManage->manageTest->step19->desc = '可以在这里关联用例'; + +$lang->tutorial->scrumProjectManage->manageTest->step20 = new stdClass(); +$lang->tutorial->scrumProjectManage->manageTest->step20->name = '选择要关联的用例'; + +$lang->tutorial->scrumProjectManage->manageTest->step21 = new stdClass(); +$lang->tutorial->scrumProjectManage->manageTest->step21->name = '保存表单'; +$lang->tutorial->scrumProjectManage->manageTest->step21->desc = '您可以将用例关联在测试单中,在这里可以查看全部已关联的用例'; + +$lang->tutorial->scrumProjectManage->manageTest->step22 = new stdClass(); +$lang->tutorial->scrumProjectManage->manageTest->step22->name = '点击测试单'; +$lang->tutorial->scrumProjectManage->manageTest->step22->desc = '点击这里返回测试单列表'; + +$lang->tutorial->scrumProjectManage->manageTest->step23 = new stdClass(); +$lang->tutorial->scrumProjectManage->manageTest->step23->name = '选择测试单'; + +$lang->tutorial->scrumProjectManage->manageTest->step24 = new stdClass(); +$lang->tutorial->scrumProjectManage->manageTest->step24->name = '点击测试报告'; +$lang->tutorial->scrumProjectManage->manageTest->step24->desc = '可以在这里生成测试报告'; + +$lang->tutorial->scrumProjectManage->manageTest->step25 = new stdClass(); +$lang->tutorial->scrumProjectManage->manageTest->step25->name = '填写表单'; + +$lang->tutorial->scrumProjectManage->manageTest->step26 = new stdClass(); +$lang->tutorial->scrumProjectManage->manageTest->step26->name = '保存表单'; +$lang->tutorial->scrumProjectManage->manageTest->step26->desc = '保存后可以生成测试报告'; + +$lang->tutorial->scrumProjectManage->manageTest->step27 = new stdClass(); +$lang->tutorial->scrumProjectManage->manageTest->step27->name = '点击测试报告'; +$lang->tutorial->scrumProjectManage->manageTest->step27->desc = '可以在这里查看测试报告列表'; diff --git a/module/tutorial/model.php b/module/tutorial/model.php index e39fc39954..ab4110758f 100644 --- a/module/tutorial/model.php +++ b/module/tutorial/model.php @@ -491,7 +491,7 @@ class tutorialModel extends model * Get task. * * @access public - * @return string + * @return object */ public function getTask(): object { @@ -568,7 +568,7 @@ class tutorialModel extends model * Get taks. * * @access public - * @return string + * @return array */ public function getTasks(): array { @@ -621,7 +621,7 @@ class tutorialModel extends model * Get build. * * @access public - * @return string + * @return array */ public function getBuilds(): array { @@ -636,7 +636,7 @@ class tutorialModel extends model * Get Cases. * * @access public - * @return string + * @return object */ public function getCase(): object { @@ -694,6 +694,12 @@ class tutorialModel extends model $case->caseFails = 1; $case->stepNumber = 1; $case->needconfirm = ''; + $case->task = 1; + $case->case = 1; + $case->assignedTo = ''; + $case->caseVersion = ''; + $case->storyTitle = ''; + $case->caseStatus = 'normal'; $step1 = new stdClass(); $step1->name = 1; @@ -724,7 +730,7 @@ class tutorialModel extends model * Get Cases. * * @access public - * @return string + * @return array */ public function getCases(): array { @@ -739,7 +745,7 @@ class tutorialModel extends model * Get results. * * @access public - * @return string + * @return array */ public function getResults(): array { @@ -796,4 +802,124 @@ class tutorialModel extends model $result->files = array(); return array(1 => $result); } + + /** + * 获取新手模式测试单。 + * Get testtask. + * + * @access public + * @return object + */ + public function getTesttask(): object + { + $testtask = new stdClass(); + $testtask->id = 1; + $testtask->project = 2; + $testtask->product = 1; + $testtask->name = 'Test testtask'; + $testtask->execution = 3; + $testtask->build = 1; + $testtask->type = ''; + $testtask->owner = ''; + $testtask->pri = 3; + $testtask->begin = helper::today(); + $testtask->end = helper::today(); + $testtask->realBegan = ''; + $testtask->realFinishedDate = ''; + $testtask->mailto = ''; + $testtask->desc = ''; + $testtask->report = ''; + $testtask->status = 'wait'; + $testtask->testreport = 0; + $testtask->auto = 'no'; + $testtask->subStatus = ''; + $testtask->createdBy = $this->app->user->account; + $testtask->createdDate = helper::now(); + $testtask->deleted = 0; + $testtask->members = ''; + $testtask->buildName = 'Test build'; + $testtask->productName = 'Test product'; + $testtask->productType = 'normal'; + $testtask->branch = '0'; + $testtask->executionName = 'Test execution'; + $testtask->buildName = 'Test build'; + $testtask->files = array(); + return $testtask; + } + + /** + * 获取新手模式测试单列表。 + * Get testtasks. + * + * @access public + * @return array + */ + public function getTesttasks(): array + { + $testtask = $this->getTesttask(); + $testtasks = array(); + $testtasks[$testtask->id] = $testtask; + return $testtasks; + } + + /** + * 获取新手模式测试单键值对。 + * Get testtask pairs. + * + * @access public + * @return array + */ + public function getTesttaskPairs(): array + { + return array(1 => 'Test testtask'); + } + + /** + * 获取新手模式测试报告。 + * Get testreport. + * + * @access public + * @return object + */ + public function getTestReport(): object + { + $testreport = new stdClass(); + $testreport->id = 1; + $testreport->project = 2; + $testreport->product = 1; + $testreport->execution = 3; + $testreport->tasks = '1'; + $testreport->builds = '1'; + $testreport->title = 'Test testreport'; + $testreport->begin = helper::today(); + $testreport->end = helper::today(); + $testreport->owner = $this->app->user->account; + $testreport->members = ''; + $testreport->stories = ''; + $testreport->bugs = ''; + $testreport->cases = ''; + $testreport->report = ''; + $testreport->objectType = 'execution'; + $testreport->objectID = 3; + $testreport->createdBy = $this->app->user->account; + $testreport->createdDate = helper::now(); + $testreport->deleted = 0; + $testreport->taskName = 'Test testtask'; + return $testreport; + } + + /** + * 获取新手模式测试报告列表。 + * Get testreports. + * + * @access public + * @return array + */ + public function getTestReports(): array + { + $testreport = $this->getTestReport(); + $testreports = array(); + $testreports[$testreport->id] = $testreport; + return $testreports; + } }