Merge branch 'master' of https://gitlab.zcorp.cc/easycorp/zentaopms
This commit is contained in:
+3
-2
@@ -23,6 +23,9 @@ ALTER TABLE `zt_project` ADD `output` text NOT NULL AFTER `milestone`;
|
||||
ALTER TABLE `zt_project` ADD `lastEditedBy` varchar(30) NOT NULL DEFAULT '' AFTER `openedVersion`;
|
||||
ALTER TABLE `zt_project` ADD `lastEditedDate` datetime NOT NULL AFTER `lastEditedBy`;
|
||||
|
||||
ALTER TABLE `zt_case` ADD `project` mediumint(8) unsigned NOT NULL AFTER `id`;
|
||||
ALTER TABLE `zt_case` ADD `execution` mediumint(8) unsigned NOT NULL AFTER `project`;
|
||||
|
||||
ALTER TABLE `zt_action` CHANGE `project` `execution` mediumint(8) unsigned NOT NULL;
|
||||
ALTER TABLE `zt_bug` CHANGE `project` `execution` mediumint(8) unsigned NOT NULL;
|
||||
ALTER TABLE `zt_build` CHANGE `project` `execution` mediumint(8) unsigned NOT NULL;
|
||||
@@ -30,7 +33,6 @@ ALTER TABLE `zt_burn` CHANGE `project` `execution` mediumint(8) unsigned NOT NUL
|
||||
ALTER TABLE `zt_doc` CHANGE `project` `execution` mediumint(8) unsigned NOT NULL;
|
||||
ALTER TABLE `zt_relation` CHANGE `project` `execution` mediumint(8) unsigned NOT NULL;
|
||||
ALTER TABLE `zt_relation` CHANGE `program` `project` mediumint(8) unsigned NOT NULL;
|
||||
ALTER TABLE `zt_case` CHANGE `project` `execution` mediumint(8) unsigned NOT NULL;
|
||||
ALTER TABLE `zt_doclib` CHANGE `project` `execution` mediumint(8) unsigned NOT NULL;
|
||||
ALTER TABLE `zt_task` CHANGE `project` `execution` mediumint(8) unsigned NOT NULL;
|
||||
ALTER TABLE `zt_testreport` CHANGE `project` `execution` mediumint(8) unsigned NOT NULL;
|
||||
@@ -43,7 +45,6 @@ ALTER TABLE `zt_doclib` ADD `project` mediumint(8) unsigned NOT NULL AFTER `prod
|
||||
ALTER TABLE `zt_doc` ADD `project` mediumint(8) unsigned NOT NULL AFTER `id`;
|
||||
ALTER TABLE `zt_story` ADD `project` mediumint(8) unsigned NOT NULL AFTER `id`;
|
||||
ALTER TABLE `zt_bug` ADD `project` mediumint(8) unsigned NOT NULL AFTER `id`;
|
||||
ALTER TABLE `zt_case` ADD `project` mediumint(8) unsigned NOT NULL AFTER `id`;
|
||||
ALTER TABLE `zt_testtask` ADD `project` mediumint(8) unsigned NOT NULL AFTER `id`;
|
||||
ALTER TABLE `zt_testreport` ADD `project` mediumint(8) unsigned NOT NULL AFTER `id`;
|
||||
ALTER TABLE `zt_testsuite` ADD `project` mediumint(8) unsigned NOT NULL AFTER `id`;
|
||||
|
||||
+6
-6
@@ -28,22 +28,22 @@ ALTER TABLE `zt_user` ADD `visions` varchar(20) NOT NULL DEFAULT 'rnd,lite' AFTE
|
||||
UPDATE `zt_user` SET `visions`='rnd,lite';
|
||||
|
||||
INSERT INTO `zt_group` (`vision`, `name`, `role`, `desc`) VALUES
|
||||
('lite', '管理员', 'liteUser', '迅捷版用户分组');
|
||||
('lite', '管理员', 'liteAdmin', '迅捷版用户分组');
|
||||
|
||||
INSERT INTO `zt_group` (`vision`, `name`, `role`, `desc`) VALUES
|
||||
('lite', '项目管理', 'liteUser', '迅捷版用户分组');
|
||||
('lite', '项目管理', 'liteProject', '迅捷版用户分组');
|
||||
|
||||
INSERT INTO `zt_group` (`vision`, `name`, `role`, `desc`) VALUES
|
||||
('lite', '团队成员', 'liteUser', '迅捷版用户分组');
|
||||
('lite', '团队成员', 'liteTeam', '迅捷版用户分组');
|
||||
|
||||
REPLACE INTO `zt_grouppriv`(`module`, `method`,`group`)
|
||||
SELECT `module`, `method`,(SELECT `id` FROM zt_group WHERE `name` = '管理员' and `vision` = 'lite') from `zt_grouppriv` where `group` = 1;
|
||||
SELECT `module`, `method`,(SELECT `id` FROM zt_group WHERE `role` = 'liteAdmin' and `vision` = 'lite') from `zt_grouppriv` where `group` = 1;
|
||||
|
||||
REPLACE INTO `zt_grouppriv`(`module`, `method`,`group`)
|
||||
SELECT `module`, `method`,(SELECT `id` FROM zt_group WHERE `name` = '项目管理' and `vision` = 'lite') from `zt_grouppriv` where `group` = 4;
|
||||
SELECT `module`, `method`,(SELECT `id` FROM zt_group WHERE `role` = 'liteProject' and `vision` = 'lite') from `zt_grouppriv` where `group` = 4;
|
||||
|
||||
REPLACE INTO `zt_grouppriv`(`module`, `method`,`group`)
|
||||
SELECT `module`, `method`,(SELECT `id` FROM zt_group WHERE `name` = '团队成员' and `vision` = 'lite') from `zt_grouppriv` where `group` = 9;
|
||||
SELECT `module`, `method`,(SELECT `id` FROM zt_group WHERE `role` = 'liteTeam' and `vision` = 'lite') from `zt_grouppriv` where `group` = 9;
|
||||
|
||||
ALTER TABLE `zt_productplan` ADD `closedReason` varchar(20) NOT NULL AFTER `order`;
|
||||
|
||||
|
||||
@@ -785,6 +785,7 @@ $lang->resource->execution->addWhitelist = 'addWhitelist';
|
||||
$lang->resource->execution->unbindWhitelist = 'unbindWhitelist';
|
||||
$lang->resource->execution->storyEstimate = 'storyEstimate';
|
||||
$lang->resource->execution->executionkanban = 'kanbanAction';
|
||||
$lang->resource->execution->kanban = 'RDKanban';
|
||||
//if($config->systemMode == 'classic') $lang->resource->project->list = 'list';
|
||||
|
||||
//$lang->execution->methodOrder[0] = 'index';
|
||||
@@ -840,6 +841,7 @@ $lang->execution->methodOrder[250] = 'addWhitelist';
|
||||
$lang->execution->methodOrder[255] = 'unbindWhitelist';
|
||||
$lang->execution->methodOrder[260] = 'storyEstimate';
|
||||
$lang->execution->methodOrder[265] = 'executionkanban';
|
||||
$lang->execution->methodOrder[270] = 'kanban';
|
||||
|
||||
/* Task. */
|
||||
$lang->resource->task = new stdclass();
|
||||
|
||||
@@ -5828,7 +5828,7 @@ class upgradeModel extends model
|
||||
}
|
||||
}
|
||||
|
||||
if(empty($customFiles) or $module == 'owt') $encryptModules[] = $module;
|
||||
if(empty($customFiles) or $module == 'owt') $encryptModules[$module] = $module;
|
||||
}
|
||||
return $encryptModules;
|
||||
}
|
||||
|
||||
@@ -950,4 +950,116 @@ class executionTest
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public function addProjectMembersTest($projectID = 0, $executionID, $count)
|
||||
{
|
||||
global $tester;
|
||||
$tester->dbh->query("delete from zt_team where root = $projectID");
|
||||
$executionMembers = $tester->dao->select('`root`,`account`,`join`,`role`,`days`,`type`,`hours`')->from(TABLE_TEAM)->where('root')->eq($executionID)->fetchAll('account');
|
||||
$this->objectModel->addProjectMembers($projectID, $executionMembers);
|
||||
$object = $tester->dao->select('*')->from(TABLE_TEAM)->where('root')->eq($projectID)->fetchAll();
|
||||
if(dao::isError())
|
||||
{
|
||||
$error = dao::getError();
|
||||
return $error;
|
||||
}
|
||||
elseif($count == "1")
|
||||
{
|
||||
return count($object);
|
||||
}
|
||||
else
|
||||
{
|
||||
return $object;
|
||||
}
|
||||
}
|
||||
|
||||
public function unlinkMemberTest($sprintID, $account, $count)
|
||||
{
|
||||
global $tester;
|
||||
$oldObject = $tester->dao->select('*')->from(TABLE_TEAM)->where('root')->eq($sprintID)->fetchAll();
|
||||
$this->objectModel->unlinkMember($sprintID, $account);
|
||||
$object = $tester->dao->select('*')->from(TABLE_TEAM)->where('root')->eq($sprintID)->fetchAll();
|
||||
if(dao::isError())
|
||||
{
|
||||
$error = dao::getError();
|
||||
return $error;
|
||||
}
|
||||
elseif($count == "1")
|
||||
{
|
||||
return count($oldObject);
|
||||
}
|
||||
else
|
||||
{
|
||||
return $object;
|
||||
}
|
||||
}
|
||||
|
||||
public function computeBurnTest($count)
|
||||
{
|
||||
$object = $this->objectModel->computeBurn();
|
||||
if(dao::isError())
|
||||
{
|
||||
$error = dao::getError();
|
||||
return $error;
|
||||
}
|
||||
elseif($count == "1")
|
||||
{
|
||||
return count($object);
|
||||
}
|
||||
else
|
||||
{
|
||||
return $object;
|
||||
}
|
||||
}
|
||||
|
||||
public function fixFirstTest($executionID, $count, $param = array())
|
||||
{
|
||||
global $tester;
|
||||
$date = date('Y-m-d');
|
||||
$createFields = array('estimate' => '');
|
||||
foreach($createFields as $field => $defaultValue) $_POST[$field] = $defaultValue;
|
||||
foreach($param as $key => $value) $_POST[$key] = $value;
|
||||
$this->objectModel->computeBurn();
|
||||
$this->objectModel->fixFirst($executionID);
|
||||
unset($_POST);
|
||||
$object = $tester->dao->select('*')->from(TABLE_BURN)->where('execution')->eq($executionID)->andWhere('date')->eq($date)->fetchAll();
|
||||
if(dao::isError())
|
||||
{
|
||||
$error = dao::getError();
|
||||
return $error;
|
||||
}
|
||||
elseif($count == "1")
|
||||
{
|
||||
return count($object);
|
||||
}
|
||||
else
|
||||
{
|
||||
if(empty($object))
|
||||
{
|
||||
return '无数据';
|
||||
}
|
||||
else
|
||||
{
|
||||
return $object;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public function getBurnDataFlotTest($executionID = 0, $count)
|
||||
{
|
||||
$object = $this->objectModel->getBurnDataFlot($executionID, $burnBy = 'left');
|
||||
if(dao::isError())
|
||||
{
|
||||
$error = dao::getError();
|
||||
return $error;
|
||||
}
|
||||
elseif($count == "1")
|
||||
{
|
||||
return count($object);
|
||||
}
|
||||
else
|
||||
{
|
||||
return $object;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,90 @@
|
||||
title: table zt_effort
|
||||
desc: "任务工时记录"
|
||||
author: automated export
|
||||
version: "1.0"
|
||||
fields:
|
||||
- field: id
|
||||
note: "ID"
|
||||
range: "1-10000"
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: objectType
|
||||
note: "对象类型"
|
||||
range: "custom"
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: objectID
|
||||
note: "对象ID"
|
||||
range: "0"
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: product
|
||||
note: "产品ID"
|
||||
range: "0"
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: project
|
||||
note: "项目ID"
|
||||
range: "0"
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: account
|
||||
note: "用户账号"
|
||||
fields:
|
||||
- field: account1
|
||||
range: admin,user{99}
|
||||
- field: account2
|
||||
range: [],1-99
|
||||
format: ""
|
||||
- field: work
|
||||
note: "工作内容"
|
||||
range: "1-10000"
|
||||
prefix: "这是工作内容"
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: date
|
||||
note: "创建日期"
|
||||
range: "(M)-(w)"
|
||||
type: timestamp
|
||||
prefix: "DateTime"
|
||||
postfix: ""
|
||||
format: "YY/MM/DD"
|
||||
- field: left
|
||||
note: "剩余"
|
||||
range: "0"
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: consumed
|
||||
note: "消耗"
|
||||
range: 1-100:5
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: begin
|
||||
note: "开始"
|
||||
range: 1000-1059:2
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: end
|
||||
note: "结束"
|
||||
range: 1400-1459:2
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
@@ -0,0 +1,40 @@
|
||||
title: table zt_projectstory
|
||||
desc: "项目需求关系"
|
||||
author: automated export
|
||||
version: "1.0"
|
||||
fields:
|
||||
- field: project
|
||||
note: "项目ID"
|
||||
range: 101-190{2}
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: product
|
||||
note: "产品ID"
|
||||
range: 1-10000{2}
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: story
|
||||
note: "需求ID"
|
||||
range: 2-400:2
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: version
|
||||
note: "版本"
|
||||
range: 1
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: order
|
||||
note: "排序"
|
||||
range: 1,2
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
@@ -3,8 +3,6 @@ desc: ""
|
||||
author: automated export
|
||||
version: "1.0"
|
||||
fields:
|
||||
- field: lane
|
||||
range: "0"
|
||||
- field: parent
|
||||
range: "0"
|
||||
- field: type
|
||||
@@ -22,8 +20,6 @@ fields:
|
||||
range: ""
|
||||
- field: order
|
||||
range: 1-4
|
||||
- field: cards
|
||||
range: ""
|
||||
- field: archived
|
||||
range: "0"
|
||||
- field: deleted
|
||||
|
||||
@@ -5,8 +5,6 @@ version: "1.0"
|
||||
fields:
|
||||
- field: id
|
||||
range: 401-100000
|
||||
- field: lane
|
||||
range: "0"
|
||||
- field: parent
|
||||
range: "0"
|
||||
- field: type
|
||||
@@ -23,8 +21,6 @@ fields:
|
||||
range: ""
|
||||
- field: order
|
||||
range: "0"
|
||||
- field: cards
|
||||
range: ""
|
||||
- field: archived
|
||||
range: "0"
|
||||
- field: deleted
|
||||
|
||||
@@ -0,0 +1,40 @@
|
||||
title: table zt_projectstory
|
||||
desc: "项目需求关系"
|
||||
author: automated export
|
||||
version: "1.0"
|
||||
fields:
|
||||
- field: project
|
||||
note: "项目ID"
|
||||
range: 11-100{2}
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: product
|
||||
note: "产品ID"
|
||||
range: 1-10000{2}
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: story
|
||||
note: "需求ID"
|
||||
range: 2-400:2
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: version
|
||||
note: "版本"
|
||||
range: 1
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: order
|
||||
note: "排序"
|
||||
range: 1,2
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
+36
-35
@@ -1,65 +1,64 @@
|
||||
title: table zt_todo
|
||||
desc: "待办"
|
||||
author: automated export
|
||||
author: ly
|
||||
version: "1.0"
|
||||
fields:
|
||||
- field: id
|
||||
note: "ID"
|
||||
range: "1-10000"
|
||||
range: 1-10000
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: account
|
||||
note: "用户账号"
|
||||
note: "用户名"
|
||||
fields:
|
||||
- field: account1
|
||||
range: test,dev
|
||||
- field: account2
|
||||
range: 1-100
|
||||
- field: account1
|
||||
range: admin,user{99},test{100},dev{100},pm{100},po{100},td{100},pd{100},qd{100},top{100},outside{100}
|
||||
- field: account2
|
||||
range: [],1-99,1-100,1-100,1-100,1-100,1-100,1-100,1-100,1-100,1-100
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: date
|
||||
note: "日期"
|
||||
from: common.date.v1.yaml
|
||||
use: dateB
|
||||
prefix: ""
|
||||
range: "(M)-(w)"
|
||||
type: timestamp
|
||||
prefix: "DateTime"
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
format: "YY/MM/DD"
|
||||
- field: begin
|
||||
note: "开始"
|
||||
range: "1000-1300:R"
|
||||
range: "1000-1059:2"
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: end
|
||||
note: "结束"
|
||||
range: "1400-2000:R"
|
||||
range: "1400-1459:2"
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: type
|
||||
note: "类型"
|
||||
range: custom{20},bug{20},task{20},story{20},testtask{20}
|
||||
range: custom,bug,task,story,testtask
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: idvalue
|
||||
note: "关联编号"
|
||||
range: 0{20},1-20{20},1-20{20},1-20{20},1-20{20}
|
||||
range: 0,1-20,1-20,1-20,1-20
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: pri
|
||||
note: "优先级"
|
||||
range: 1-4:R
|
||||
range: 1-4
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
@@ -68,11 +67,11 @@ fields:
|
||||
note: "待办名称"
|
||||
fields:
|
||||
- field: name1
|
||||
range: "这是一个"
|
||||
range: 自定义,BUG,任务,需求,测试单
|
||||
- field: name2
|
||||
range: 自定义{20},BUG{20},任务{20},需求{20},测试单{20}
|
||||
range: 1-200,1-200,1-200,1-200.1-200
|
||||
prefix: ""
|
||||
postfix: "的名称"
|
||||
postfix: "的待办"
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: desc
|
||||
@@ -84,7 +83,7 @@ fields:
|
||||
format: ""
|
||||
- field: status
|
||||
note: "状态"
|
||||
range: [wait,doing,done,closed]:R
|
||||
range: wait,doing,done,closed
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
@@ -98,35 +97,37 @@ fields:
|
||||
format: ""
|
||||
- field: config
|
||||
note: "配置"
|
||||
range: 1-10000
|
||||
prefix: "这里待办json配置"
|
||||
range: ""
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: assignedTo
|
||||
note: "指派给"
|
||||
from: common.user.v1.yaml
|
||||
use: user
|
||||
fields:
|
||||
- field: ass1
|
||||
range: admin,user{99},test{100},dev{100},pm{100},po{100},td{100},pd{100},qd{100},top{100},outside{100}
|
||||
- field: ass2
|
||||
range: [],1-99,1-100,1-100,1-100,1-100,1-100,1-100,1-100,1-100,1-100
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: assignedBy
|
||||
note: "由谁指派"
|
||||
from: common.user.v1.yaml
|
||||
use: user
|
||||
fields:
|
||||
- field: ass1
|
||||
range: admin,user{99},test{100},dev{100},pm{100},po{100},td{100},pd{100},qd{100},top{100},outside{100}
|
||||
- field: ass2
|
||||
range: [],1-99,1-100,1-100,1-100,1-100,1-100,1-100,1-100,1-100,1-100
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: assignedDate
|
||||
note: "指派日期"
|
||||
from: common.date.v1.yaml
|
||||
use: dateA
|
||||
prefix: ""
|
||||
range: "(M)-(w):60m"
|
||||
type: timestamp
|
||||
prefix: "DateTime"
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
format: "YY/MM/DD hh:mm:ss"
|
||||
- field: finishedBy
|
||||
note: "由谁完成"
|
||||
from: common.user.v1.yaml
|
||||
|
||||
@@ -3,6 +3,8 @@ $builder = new stdclass();
|
||||
|
||||
$builder->company = array('rows' => 1, 'extends' => array('company'));
|
||||
$builder->user = array('rows' => 1000, 'extends' => array('user'));
|
||||
$builder->todo = array('rows' => 2000, 'extends' => array('todo'));
|
||||
$builder->effort = array('rows' => 100, 'extends' => array('effort'));
|
||||
$builder->usergroup = array('rows' => 600, 'extends' => array('usergroup'));
|
||||
$builder->dept = array('rows' => 100, 'extends' => array('dept'));
|
||||
$builder->action = array('rows' => 100, 'extends' => array('action'));
|
||||
@@ -28,6 +30,8 @@ $builder->productline = array('rows' => 20, 'extends' => array('module', 'pr
|
||||
$builder->productplan = array('rows' => 30, 'extends' => array('productplan'));
|
||||
$builder->branch = array('rows' => 240, 'extends' => array('branch'));
|
||||
$builder->projectproduct = array('rows' => 200, 'extends' => array('projectproduct'));
|
||||
$builder->projectstory = array('rows' => 200, 'extends' => array('projectstory'));
|
||||
$builder->executionstory = array('rows' => 180, 'extends' => array('projectstory','executionstory'));
|
||||
|
||||
$builder->kanbanspace = array('rows' => 50, 'extends' => array('kanbanspace'));
|
||||
$builder->kanban = array('rows' => 100, 'extends' => array('kanban'));
|
||||
|
||||
@@ -10,14 +10,12 @@ fields:
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: account
|
||||
note: "所有者"
|
||||
from: common.user.v1.yaml
|
||||
use: user
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: account
|
||||
- fields:
|
||||
- field: account1
|
||||
range: admin,user{99},test{100},dev{100},pm{100},po{100},td{100},pd{100},qd{100},top{100},outside{100}
|
||||
- field: account2
|
||||
range: []{2},1-99{2},1-100,1-100,1-100,1-100,1-100,1-100,1-100,1-100,1-100
|
||||
- field: date
|
||||
note: "日期"
|
||||
from: common.date.v1.yaml
|
||||
|
||||
Executable
+33
@@ -0,0 +1,33 @@
|
||||
#!/usr/bin/env php
|
||||
<?php
|
||||
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
|
||||
include dirname(dirname(dirname(__FILE__))) . '/class/execution.class.php';
|
||||
su('admin');
|
||||
|
||||
/**
|
||||
|
||||
title=测试executionModel->addProjectMembersTest();
|
||||
cid=1
|
||||
pid=1
|
||||
|
||||
敏捷执行关联用例 >> 101,1,1
|
||||
瀑布执行关联用例 >> 131,43,169
|
||||
看板执行关联用例 >> 161,68,269
|
||||
敏捷执行关联用例统计 >> 4
|
||||
瀑布执行关联用例统计 >> 4
|
||||
看板执行关联用例统计 >> 4
|
||||
|
||||
*/
|
||||
|
||||
$projectIDList = array('11', '41', '71');
|
||||
$executionIDList = array('101', '131', '161', '1611');
|
||||
$count = array('0','1');
|
||||
|
||||
$execution = new executionTest();
|
||||
r($execution->addProjectMembersTest($projectIDList[0], $executionIDList[0], $count[0])) && p('0:account,role') && e('po82,研发'); // 敏捷项目根据执行添加团队信息
|
||||
r($execution->addProjectMembersTest($projectIDList[1], $executionIDList[1], $count[0])) && p('0:account,role') && e('test22,测试'); // 瀑布项目根据执行添加团队信息
|
||||
r($execution->addProjectMembersTest($projectIDList[2], $executionIDList[2], $count[0])) && p('0:account,role') && e('test52,测试'); // 看板项目根据执行添加团队信息
|
||||
r($execution->addProjectMembersTest($projectIDList[0], $executionIDList[0], $count[1])) && p() && e('2'); // 敏捷项目根据执行添加团队信息统计
|
||||
r($execution->addProjectMembersTest($projectIDList[1], $executionIDList[1], $count[1])) && p() && e('1'); // 瀑布项目根据执行添加团队信息统计
|
||||
r($execution->addProjectMembersTest($projectIDList[2], $executionIDList[2], $count[1])) && p() && e('1'); // 看板项目根据执行添加团队信息统计
|
||||
system("./ztest init");
|
||||
Executable
+26
@@ -0,0 +1,26 @@
|
||||
#!/usr/bin/env php
|
||||
<?php
|
||||
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
|
||||
include dirname(dirname(dirname(__FILE__))) . '/class/execution.class.php';
|
||||
su('admin');
|
||||
|
||||
/**
|
||||
|
||||
title=测试executionModel->computeBurnTest();
|
||||
cid=1
|
||||
pid=1
|
||||
|
||||
敏捷执行关联用例 >> 101,1,1
|
||||
瀑布执行关联用例 >> 131,43,169
|
||||
看板执行关联用例 >> 161,68,269
|
||||
敏捷执行关联用例统计 >> 4
|
||||
瀑布执行关联用例统计 >> 4
|
||||
看板执行关联用例统计 >> 4
|
||||
|
||||
*/
|
||||
|
||||
$count = array('0','1');
|
||||
|
||||
$execution = new executionTest();
|
||||
r($execution->computeBurnTest($count[0])) && p('700:executionName') && e('project600'); // 正常初始化
|
||||
r($execution->computeBurnTest($count[1])) && p() && e('516'); // 初始化后数据统计
|
||||
Executable
+31
@@ -0,0 +1,31 @@
|
||||
#!/usr/bin/env php
|
||||
<?php
|
||||
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
|
||||
include dirname(dirname(dirname(__FILE__))) . '/class/execution.class.php';
|
||||
su('admin');
|
||||
|
||||
/**
|
||||
|
||||
title=测试executionModel->fixFirstTest();
|
||||
cid=1
|
||||
pid=1
|
||||
|
||||
敏捷执行关联用例 >> 101,1,1
|
||||
瀑布执行关联用例 >> 131,43,169
|
||||
看板执行关联用例 >> 161,68,269
|
||||
敏捷执行关联用例统计 >> 4
|
||||
瀑布执行关联用例统计 >> 4
|
||||
看板执行关联用例统计 >> 4
|
||||
|
||||
*/
|
||||
|
||||
$executionIDList = array('101', '131');
|
||||
|
||||
$scrumEstimate = array('estimate' => '25');
|
||||
$withLeft = array('estimate' => '21', 'withLeft' => '1');
|
||||
$waterfallEstimate = array('estimate' => '17', 'withLeft' => '1');
|
||||
|
||||
$execution = new executionTest();
|
||||
r($execution->fixFirstTest($executionIDList[0], $scrumEstimate)) && p('0:estimate') && e('26'); // 敏捷执行更新首日工时
|
||||
r($execution->fixFirstTest($executionIDList[0], $withLeft)) && p('0:estimate') && e('26'); // 敏捷执行更新首日剩余工时
|
||||
r($execution->fixFirstTest($executionIDList[1], $waterfallEstimate)) && p('0:left') && e('17'); // 瀑布执行更新首日剩余工时
|
||||
Executable
+28
@@ -0,0 +1,28 @@
|
||||
#!/usr/bin/env php
|
||||
<?php
|
||||
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
|
||||
include dirname(dirname(dirname(__FILE__))) . '/class/execution.class.php';
|
||||
su('admin');
|
||||
|
||||
/**
|
||||
|
||||
title=测试executionModel->getBurnDataFlotTest();
|
||||
cid=1
|
||||
pid=1
|
||||
|
||||
敏捷执行关联用例 >> 101,1,1
|
||||
瀑布执行关联用例 >> 131,43,169
|
||||
看板执行关联用例 >> 161,68,269
|
||||
敏捷执行关联用例统计 >> 4
|
||||
瀑布执行关联用例统计 >> 4
|
||||
看板执行关联用例统计 >> 4
|
||||
|
||||
*/
|
||||
|
||||
$executionIDList = array('101', '131', '161');
|
||||
$count = array('0','1');
|
||||
|
||||
$execution = new executionTest();
|
||||
r($execution->getBurnDataFlotTest($executionIDList[0], $count[1])) && p() && e('2'); // 敏捷执行查询统计
|
||||
r($execution->getBurnDataFlotTest($executionIDList[1], $count[1])) && p() && e('2'); // 瀑布执行查询统计
|
||||
r($execution->getBurnDataFlotTest($executionIDList[2], $count[1])) && p() && e('1'); // 看板执行查询统计
|
||||
Executable
+32
@@ -0,0 +1,32 @@
|
||||
#!/usr/bin/env php
|
||||
<?php
|
||||
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
|
||||
include dirname(dirname(dirname(__FILE__))) . '/class/execution.class.php';
|
||||
su('admin');
|
||||
|
||||
/**
|
||||
|
||||
title=测试executionModel->unlinkMemberTest();
|
||||
cid=1
|
||||
pid=1
|
||||
|
||||
敏捷执行关联用例 >> 101,1,1
|
||||
瀑布执行关联用例 >> 131,43,169
|
||||
看板执行关联用例 >> 161,68,269
|
||||
敏捷执行关联用例统计 >> 4
|
||||
瀑布执行关联用例统计 >> 4
|
||||
看板执行关联用例统计 >> 4
|
||||
|
||||
*/
|
||||
|
||||
$accountList = array('user92', 'test22', 'test52');
|
||||
$executionIDList = array('101', '131', '161');
|
||||
$count = array('0','1');
|
||||
|
||||
$execution = new executionTest();
|
||||
r($execution->unlinkMemberTest($executionIDList[0], $accountList[0], $count[0])) && p('0:account,role') && e('po82,研发'); // 敏捷执行解除团队成员
|
||||
r($execution->unlinkMemberTest($executionIDList[0], $accountList[0], $count[1])) && p() && e('1'); // 敏捷执行解除团队成员后统计
|
||||
r($execution->unlinkMemberTest($executionIDList[1], $accountList[1], $count[0])) && p() && e('0'); // 瀑布执行解除团队成员
|
||||
r($execution->unlinkMemberTest($executionIDList[2], $accountList[2], $count[0])) && p('0:account,role') && e('test52,测试'); // 看板执行解除团队成员
|
||||
r($execution->unlinkMemberTest($executionIDList[2], $accountList[2], $count[1])) && p() && e('1'); // 看板执行解除团队成员后统计
|
||||
system("./ztest init");
|
||||
Reference in New Issue
Block a user