diff --git a/module/programplan/lang/de.php b/module/programplan/lang/de.php index 464c22e7a0..ff5e02eab2 100644 --- a/module/programplan/lang/de.php +++ b/module/programplan/lang/de.php @@ -93,6 +93,7 @@ $lang->programplan->methodTip = "You can choose to continue creating stag $lang->programplan->cropStageTip = "Stages that have already started cannot be cropped"; $lang->programplan->childEnabledTip = "Child stage enabled follows parent stage."; $lang->programplan->reviewedPointTip = "The review point has been submitted for review and can no longer be operated."; +$lang->programplan->typeTip = "The first level only supports creating stages, and stages can be created or {$lang->executionCommon}/Kanban can be created under the same stage. It's not supported to further split the {$lang->executionCommon}/Kanban."; $lang->programplan->milestoneList[1] = 'Yes'; $lang->programplan->milestoneList[0] = 'No'; diff --git a/module/programplan/lang/en.php b/module/programplan/lang/en.php index 09ef59d4fe..461e2f3177 100644 --- a/module/programplan/lang/en.php +++ b/module/programplan/lang/en.php @@ -93,6 +93,7 @@ $lang->programplan->methodTip = "You can choose to continue creating stag $lang->programplan->cropStageTip = "Stages that have already started cannot be cropped"; $lang->programplan->childEnabledTip = "Child stage enabled follows parent stage."; $lang->programplan->reviewedPointTip = "The review point has been submitted for review and can no longer be operated."; +$lang->programplan->typeTip = "The first level only supports creating stages, and stages can be created or {$lang->executionCommon}/Kanban can be created under the same stage. It's not supported to further split the {$lang->executionCommon}/Kanban."; $lang->programplan->milestoneList[1] = 'Yes'; $lang->programplan->milestoneList[0] = 'No'; diff --git a/module/programplan/lang/fr.php b/module/programplan/lang/fr.php index 9ce00e7591..ea799cf2db 100644 --- a/module/programplan/lang/fr.php +++ b/module/programplan/lang/fr.php @@ -93,6 +93,7 @@ $lang->programplan->methodTip = "You can choose to continue creating stag $lang->programplan->cropStageTip = "Stages that have already started cannot be cropped"; $lang->programplan->childEnabledTip = "Child stage enabled follows parent stage."; $lang->programplan->reviewedPointTip = "The review point has been submitted for review and can no longer be operated."; +$lang->programplan->typeTip = "The first level only supports creating stages, and stages can be created or {$lang->executionCommon}/Kanban can be created under the same stage. It's not supported to further split the {$lang->executionCommon}/Kanban."; $lang->programplan->milestoneList[1] = 'Yes'; $lang->programplan->milestoneList[0] = 'No'; diff --git a/module/programplan/lang/zh-cn.php b/module/programplan/lang/zh-cn.php index db29dcdfdf..ffcce34353 100644 --- a/module/programplan/lang/zh-cn.php +++ b/module/programplan/lang/zh-cn.php @@ -93,6 +93,7 @@ $lang->programplan->methodTip = "您可以在该阶段下选择继续创 $lang->programplan->cropStageTip = "已经开始了的阶段不能再裁剪"; $lang->programplan->childEnabledTip = "子阶段启用状态跟随父阶段"; $lang->programplan->reviewedPointTip = "该评审点已提交评审不能再操作"; +$lang->programplan->typeTip = "第一层级仅支持创建阶段,同一阶段下可以创建阶段或创建迭代/看板。迭代/看板不支持继续拆分。"; $lang->programplan->milestoneList[1] = '是'; $lang->programplan->milestoneList[0] = '否'; diff --git a/module/programplan/ui/create.html.php b/module/programplan/ui/create.html.php index 9461358ddf..cd8ab45190 100644 --- a/module/programplan/ui/create.html.php +++ b/module/programplan/ui/create.html.php @@ -136,6 +136,19 @@ $fnGenerateFields = function() use ($lang, $requiredFields, $showFields, $fields { $field['hidden'] = false; $field['items'] = $lang->execution->typeList; + if($project->model == 'waterfallplus') + { + $field['tipIcon'] = 'help'; + $field['tip'] = $lang->programplan->typeTip; + $field['tipProps'] = array + ( + 'id' => 'tooltipHover', + 'data-toggle' => 'tooltip', + 'data-placement' => 'right', + 'data-type' => 'white', + 'data-class-name' => 'text-gray border border-gray-300' + ); + } } if($name == 'attribute' && in_array($project->model, array('waterfall', 'waterfallplus'))) diff --git a/module/task/test/model/getbyidlist.php b/module/task/test/model/getbyidlist.php index 85bf53aa6c..82a5eb8a1a 100755 --- a/module/task/test/model/getbyidlist.php +++ b/module/task/test/model/getbyidlist.php @@ -11,8 +11,16 @@ title=taskModel->getByList(); timeout=0 cid=1 -*/ +- 测试空数据 @0 +- 测试根据未删除任务的ID获取任务信息 + - 第1条的id属性 @1 + - 第1条的name属性 @开发任务11 +- 测试根据未删除任务的ID获取任务信息数量 @9 +- 测试根据已删除任务的ID获取任务信息数量 @0 +- 测试根据任务的ID获取任务信息数量 @9 +- 测试根据不存在任务的ID获取任务信息数量 @0 +*/ $taskIdList[] = range(1, 9); $taskIdList[] = range(10, 12); @@ -25,4 +33,4 @@ r($taskModel->getByIdList($taskIdList[0])) && p('1:id,name') && e('1,开 r(count($taskModel->getByIdList($taskIdList[0]))) && p() && e('9'); // 测试根据未删除任务的ID获取任务信息数量 r(count($taskModel->getByIdList($taskIdList[1]))) && p() && e('0'); // 测试根据已删除任务的ID获取任务信息数量 r(count($taskModel->getByIdList($taskIdList[2]))) && p() && e('9'); // 测试根据任务的ID获取任务信息数量 -r(count($taskModel->getByIdList($taskIdList[3]))) && p() && e('0'); // 测试根据不存在任务的ID获取任务信息数量 +r(count($taskModel->getByIdList($taskIdList[3]))) && p() && e('0'); // 测试根据不存在任务的ID获取任务信息数量 \ No newline at end of file diff --git a/module/task/test/model/geteffortbyid.php b/module/task/test/model/geteffortbyid.php index 821f7e989f..f16f66d2e3 100755 --- a/module/task/test/model/geteffortbyid.php +++ b/module/task/test/model/geteffortbyid.php @@ -11,6 +11,15 @@ title=taskModel->getEffortByID(); timeout=0 cid=1 +- 查询日志为空的情况 @0 +- 查询不是最后一次添加的日志 + - 属性work @这是工作内容1 + - 属性isLast @0 +- 查询最后添加的日志 + - 属性work @这是工作内容11 + - 属性isLast @1 +- 查询不存在的日志 @0 + */ $estimateIdList = array('0', '1', '11', '50'); @@ -19,4 +28,4 @@ $task = new taskTest(); r($task->getEffortByIDTest($estimateIdList[0])) && p() && e('0'); // 查询日志为空的情况 r($task->getEffortByIDTest($estimateIdList[1])) && p('work,isLast') && e('这是工作内容1,0'); // 查询不是最后一次添加的日志 r($task->getEffortByIDTest($estimateIdList[2])) && p('work,isLast') && e('这是工作内容11,1'); // 查询最后添加的日志 -r($task->getEffortByIDTest($estimateIdList[3])) && p() && e('0'); // 查询不存在的日志 +r($task->getEffortByIDTest($estimateIdList[3])) && p() && e('0'); // 查询不存在的日志 \ No newline at end of file diff --git a/module/task/test/model/getlistbystory.php b/module/task/test/model/getlistbystory.php index fdd30a2dbd..0fe9d4c496 100755 --- a/module/task/test/model/getlistbystory.php +++ b/module/task/test/model/getlistbystory.php @@ -12,6 +12,55 @@ title=taskModel->getListByStory(); timeout=0 cid=1 +- 获取未关联需求的任务第5条的name属性 @开发任务15 +- 获取关联需求ID=1的任务第1条的name属性 @开发任务11 +- 获取关联需求ID=2的任务第3条的name属性 @开发任务13 +- 获取关联需求ID=3的任务 @0 +- 获取未关联需求的任务数量 @4 +- 获取关联需求ID=1的任务数量 @2 +- 获取关联需求ID=2的任务数量 @2 +- 获取关联需求ID=3的任务数量 @0 +- 获取未关联需求并且执行ID=3的任务 @0 +- 获取关联需求ID=1并且执行ID=3的任务第1条的name属性 @开发任务11 +- 获取关联需求ID=2并且执行ID=3的任务第3条的name属性 @开发任务13 +- 获取关联需求ID=3并且执行ID=3的任务 @0 +- 获取未关联需求并且执行ID=3的任务数量 @0 +- 获取关联需求ID=1并且执行ID=3的的任务数量 @2 +- 获取关联需求ID=2并且执行ID=3的的任务数量 @1 +- 获取关联需求ID=3并且执行ID=3的的任务数量 @0 +- 获取未关联需求并且执行ID=4的任务第5条的name属性 @开发任务15 +- 获取关联需求ID=1并且执行ID=4的任务 @0 +- 获取关联需求ID=2并且执行ID=4的任务第4条的name属性 @开发任务14 +- 获取关联需求ID=3并且执行ID=4的任务 @0 +- 获取未关联需求并且执行ID=4的任务数量 @2 +- 获取关联需求ID=1并且执行ID=4的的任务数量 @0 +- 获取关联需求ID=2并且执行ID=4的的任务数量 @1 +- 获取关联需求ID=3并且执行ID=4的的任务数量 @0 +- 获取未关联需求并且执行ID=6的任务 @0 +- 获取关联需求ID=1并且执行ID=6的任务 @0 +- 获取关联需求ID=2并且执行ID=6的任务 @0 +- 获取关联需求ID=3并且执行ID=6的任务 @0 +- 获取未关联需求并且执行ID=6的任务数量 @0 +- 获取关联需求ID=1并且执行ID=6的的任务数量 @0 +- 获取关联需求ID=2并且执行ID=6的的任务数量 @0 +- 获取关联需求ID=3并且执行ID=6的的任务数量 @0 +- 获取未关联需求并且执行ID=3、项目ID=1的任务 @0 +- 获取关联需求ID=1并且执行ID=3、项目ID=1的任务第2条的name属性 @开发任务12 +- 获取关联需求ID=2并且执行ID=3、项目ID=1的任务第3条的name属性 @开发任务13 +- 获取关联需求ID=3并且执行ID=3、项目ID=1的任务 @0 +- 获取未关联需求并且执行ID=3、项目ID=1的任务数量 @0 +- 获取关联需求ID=1并且执行ID=3、项目ID=1的的任务数量 @2 +- 获取关联需求ID=2并且执行ID=3、项目ID=1的的任务数量 @1 +- 获取关联需求ID=3并且执行ID=3、项目ID=1的的任务数量 @0 +- 获取未关联需求并且执行ID=3、项目ID=2的任务 @0 +- 获取关联需求ID=1并且执行ID=3、项目ID=2的任务 @0 +- 获取关联需求ID=2并且执行ID=3、项目ID=2的任务 @0 +- 获取关联需求ID=3并且执行ID=3、项目ID=2的任务 @0 +- 获取未关联需求并且执行ID=3、项目ID=2的任务数量 @0 +- 获取关联需求ID=1并且执行ID=3、项目ID=2的的任务数量 @0 +- 获取关联需求ID=2并且执行ID=3、项目ID=2的的任务数量 @0 +- 获取关联需求ID=3并且执行ID=3、项目ID=2的的任务数量 @0 + */ $storyIdList = array(0, 1, 2, 3); @@ -71,4 +120,4 @@ r($task->getListByStoryTest($storyIdList[3], $executionIdList[0], $projectIdList r(count($task->getListByStoryTest($storyIdList[0], $executionIdList[0], $projectIdList[1]))) && p() && e('0'); // 获取未关联需求并且执行ID=3、项目ID=2的任务数量 r(count($task->getListByStoryTest($storyIdList[1], $executionIdList[0], $projectIdList[1]))) && p() && e('0'); // 获取关联需求ID=1并且执行ID=3、项目ID=2的的任务数量 r(count($task->getListByStoryTest($storyIdList[2], $executionIdList[0], $projectIdList[1]))) && p() && e('0'); // 获取关联需求ID=2并且执行ID=3、项目ID=2的的任务数量 -r(count($task->getListByStoryTest($storyIdList[3], $executionIdList[0], $projectIdList[1]))) && p() && e('0'); // 获取关联需求ID=3并且执行ID=3、项目ID=2的的任务数量 +r(count($task->getListByStoryTest($storyIdList[3], $executionIdList[0], $projectIdList[1]))) && p() && e('0'); // 获取关联需求ID=3并且执行ID=3、项目ID=2的的任务数量 \ No newline at end of file diff --git a/module/task/test/model/isnostoryexecution.php b/module/task/test/model/isnostoryexecution.php index b50214010a..41cdd567fc 100755 --- a/module/task/test/model/isnostoryexecution.php +++ b/module/task/test/model/isnostoryexecution.php @@ -11,6 +11,16 @@ title=taskModel->isNoStoryExecution(); timeout=0 cid=1 +- 测试执行为短期执行 阶段类型为mix的执行是否有需求列表 @0 +- 测试执行为短期执行 阶段类型request为的执行是否有需求列表 @0 +- 测试执行为短期执行 阶段类型为review的执行是否有需求列表 @0 +- 测试执行为长期执行 阶段类型为mix的执行是否有需求列表 @0 +- 测试执行为长期执行 阶段类型request为的执行是否有需求列表 @0 +- 测试执行为长期执行 阶段类型为review的执行是否有需求列表 @0 +- 测试执行为运维执行 阶段类型为mix的执行是否有需求列表 @1 +- 测试执行为运维执行 阶段类型request为的执行是否有需求列表 @1 +- 测试执行为运维执行 阶段类型为review的执行是否有需求列表 @1 + */ $executionIdList = array(1, 2, 3, 4, 5, 6, 7, 8, 9); @@ -24,4 +34,4 @@ r($task->isNoStoryExecutionTest($executionIdList[4])) && p() && e('0'); // 测 r($task->isNoStoryExecutionTest($executionIdList[5])) && p() && e('0'); // 测试执行为长期执行 阶段类型为review的执行是否有需求列表 r($task->isNoStoryExecutionTest($executionIdList[6])) && p() && e('1'); // 测试执行为运维执行 阶段类型为mix的执行是否有需求列表 r($task->isNoStoryExecutionTest($executionIdList[7])) && p() && e('1'); // 测试执行为运维执行 阶段类型request为的执行是否有需求列表 -r($task->isNoStoryExecutionTest($executionIdList[8])) && p() && e('1'); // 测试执行为运维执行 阶段类型为review的执行是否有需求列表 +r($task->isNoStoryExecutionTest($executionIdList[8])) && p() && e('1'); // 测试执行为运维执行 阶段类型为review的执行是否有需求列表 \ No newline at end of file diff --git a/module/task/test/model/syncstorytochildren.php b/module/task/test/model/syncstorytochildren.php old mode 100644 new mode 100755 index b09621d540..c4407b54ea --- a/module/task/test/model/syncstorytochildren.php +++ b/module/task/test/model/syncstorytochildren.php @@ -4,9 +4,10 @@ /** title=taskModel->syncStoryToChildren(); +timeout=0 cid=0 -- 同步任务 id 1 的需求 2 到其未关联需求的子任务 @6:1;7:2 +- 同步任务 id 1 的需求 2 到其未关联需求的子任务 @6:1;7:0 - 同步任务 id 2 的需求 3 到其未关联需求的子任务 @8:2;9:2 - 同步任务 id 3 的需求 4 到其未关联需求的子任务 @10:2 - 同步任务 id 4 的需求 5 到其未关联需求的子任务 @0 @@ -44,8 +45,8 @@ $task5->story = 25; $task = new taskTest(); -r($task->syncStoryToChildrenTest($task1)) && p() && e('6:1;7:2'); // 同步任务 id 1 的需求 2 到其未关联需求的子任务 +r($task->syncStoryToChildrenTest($task1)) && p() && e('6:1;7:0'); // 同步任务 id 1 的需求 2 到其未关联需求的子任务 r($task->syncStoryToChildrenTest($task2)) && p() && e('8:2;9:2'); // 同步任务 id 2 的需求 3 到其未关联需求的子任务 r($task->syncStoryToChildrenTest($task3)) && p() && e('10:2'); // 同步任务 id 3 的需求 4 到其未关联需求的子任务 r($task->syncStoryToChildrenTest($task4)) && p() && e('0'); // 同步任务 id 4 的需求 5 到其未关联需求的子任务 -r($task->syncStoryToChildrenTest($task5)) && p() && e('0'); // 同步任务 id 11 的需求 25 到其未关联需求的子任务 +r($task->syncStoryToChildrenTest($task5)) && p() && e('0'); // 同步任务 id 11 的需求 25 到其未关联需求的子任务 \ No newline at end of file diff --git a/module/task/test/model/updatekanbancell.php b/module/task/test/model/updatekanbancell.php index 8467d80d8c..84092404db 100755 --- a/module/task/test/model/updatekanbancell.php +++ b/module/task/test/model/updatekanbancell.php @@ -17,6 +17,20 @@ title=taskModel->updateKanbanCell(); timeout=0 cid=1 +- 测试获取wait状态任务更新看板单元格不传output后的看板单元格数据 @1:,1,|2:|3:,2,6,7,|4:,3,|5:|6:,4,|7:,5, + +- 测试获取doing状态任务更新看板单元格不传output后的看板单元格数据 @1:,1,|2:|3:,2,6,7,|4:,3,|5:|6:,4,|7:,5, + +- 测试获取done状态任务更新看板单元格不传output后的看板单元格数据 @1:,1,|2:|3:,2,6,7,|4:,3,|5:|6:,4,|7:,5, + +- 测试获取cancel状态任务更新看板单元格不传output后的看板单元格数据 @1:,1,|2:|3:,2,6,7,|4:,3,|5:|6:,4,|7:,5, + +- 测试获取closed状态任务更新看板单元格不传output后的看板单元格数据 @1:,1,|2:|3:,2,6,7,|4:,3,|5:|6:,4,|7:,5, + +- 测试获取wait状态从第一列挪到第二列后的看板单元格数据 @1:|2:,1,|3:,2,6,7,|4:,3,|5:|6:,4,|7:,5, + +- 测试获取wait状态从第二列挪到第六列后的看板单元格数据 @1:|2:|3:,2,6,7,|4:,3,|5:|6:,4,1,|7:,5, + */ $taskIDList = array(1, 2, 3, 4, 5, 7); @@ -26,12 +40,11 @@ $output = array(); $output[] = array('fromColID' => 1, 'toColID' => 2, 'fromLaneID' => 1, 'toLaneID' => 1); $output[] = array('fromColID' => 2, 'toColID' => 6, 'fromLaneID' => 1, 'toLaneID' => 1); - $task = new taskTest(); -r($task->updateKanbanCellTest($taskIDList[0], $executionID, array())) && p() && e('1:,1,|2:|3:,2,7,|4:,3,|5:|6:,4,|7:,5,'); // 测试获取wait状态任务更新看板单元格不传output后的看板单元格数据 -r($task->updateKanbanCellTest($taskIDList[1], $executionID, array())) && p() && e('1:,1,|2:|3:,2,7,|4:,3,|5:|6:,4,|7:,5,'); // 测试获取doing状态任务更新看板单元格不传output后的看板单元格数据 -r($task->updateKanbanCellTest($taskIDList[2], $executionID, array())) && p() && e('1:,1,|2:|3:,2,7,|4:,3,|5:|6:,4,|7:,5,'); // 测试获取done状态任务更新看板单元格不传output后的看板单元格数据 -r($task->updateKanbanCellTest($taskIDList[3], $executionID, array())) && p() && e('1:,1,|2:|3:,2,7,|4:,3,|5:|6:,4,|7:,5,'); // 测试获取cancel状态任务更新看板单元格不传output后的看板单元格数据 -r($task->updateKanbanCellTest($taskIDList[4], $executionID, array())) && p() && e('1:,1,|2:|3:,2,7,|4:,3,|5:|6:,4,|7:,5,'); // 测试获取closed状态任务更新看板单元格不传output后的看板单元格数据 -r($task->updateKanbanCellTest($taskIDList[0], $executionID, $output[0])) && p() && e('1:|2:,1,|3:,2,7,|4:,3,|5:|6:,4,|7:,5,'); // 测试获取wait状态从第一列挪到第二列后的看板单元格数据 -r($task->updateKanbanCellTest($taskIDList[0], $executionID, $output[1])) && p() && e('1:|2:|3:,2,7,|4:,3,|5:|6:,4,1,|7:,5,'); // 测试获取wait状态从第二列挪到第六列后的看板单元格数据 +r($task->updateKanbanCellTest($taskIDList[0], $executionID, array())) && p() && e('1:,1,|2:|3:,2,6,7,|4:,3,|5:|6:,4,|7:,5,'); // 测试获取wait状态任务更新看板单元格不传output后的看板单元格数据 +r($task->updateKanbanCellTest($taskIDList[1], $executionID, array())) && p() && e('1:,1,|2:|3:,2,6,7,|4:,3,|5:|6:,4,|7:,5,'); // 测试获取doing状态任务更新看板单元格不传output后的看板单元格数据 +r($task->updateKanbanCellTest($taskIDList[2], $executionID, array())) && p() && e('1:,1,|2:|3:,2,6,7,|4:,3,|5:|6:,4,|7:,5,'); // 测试获取done状态任务更新看板单元格不传output后的看板单元格数据 +r($task->updateKanbanCellTest($taskIDList[3], $executionID, array())) && p() && e('1:,1,|2:|3:,2,6,7,|4:,3,|5:|6:,4,|7:,5,'); // 测试获取cancel状态任务更新看板单元格不传output后的看板单元格数据 +r($task->updateKanbanCellTest($taskIDList[4], $executionID, array())) && p() && e('1:,1,|2:|3:,2,6,7,|4:,3,|5:|6:,4,|7:,5,'); // 测试获取closed状态任务更新看板单元格不传output后的看板单元格数据 +r($task->updateKanbanCellTest($taskIDList[0], $executionID, $output[0])) && p() && e('1:|2:,1,|3:,2,6,7,|4:,3,|5:|6:,4,|7:,5,'); // 测试获取wait状态从第一列挪到第二列后的看板单元格数据 +r($task->updateKanbanCellTest($taskIDList[0], $executionID, $output[1])) && p() && e('1:|2:|3:,2,6,7,|4:,3,|5:|6:,4,1,|7:,5,'); // 测试获取wait状态从第二列挪到第六列后的看板单元格数据 \ No newline at end of file