diff --git a/.gitfox/lint.yaml b/.gitfox/lint.yaml index 318f4d8ff9..abf897e7cc 100644 --- a/.gitfox/lint.yaml +++ b/.gitfox/lint.yaml @@ -39,7 +39,7 @@ spec: type: run spec: container: - image: hub.zentao.net/ci/zentao-package:master + image: hub.zentao.net/ci/zentao-package:master-250527 script: - DOWNGRADE_CODE_DIR=$(mktemp -d) - mkdir $DOWNGRADE_CODE_DIR/diff diff --git a/.gitfox/unittestcheck.yaml b/.gitfox/unittestcheck.yaml index 1c4e410496..03f1b4cb0a 100644 --- a/.gitfox/unittestcheck.yaml +++ b/.gitfox/unittestcheck.yaml @@ -18,7 +18,13 @@ spec: - DOWNGRADE_GIT_REPO=$(jq -r .pkg.downgrade.gitRepo < ci.json) - DOWNGRADE_EXT_GIT_REPO=$(jq -r .pkg.downgradeExt.gitRepo < ci.json) + - EXT_BRANCH=$(jq -r .pkg.zentaoext.gitVersion < ci.json) + - MAX_BRANCH=$(jq -r .pkg.zentaomax.gitVersion < ci.json) + - IPD_BRANCH=$(jq -r .pkg.zentaoipd.gitVersion < ci.json) - echo "XUANVERSION=${XUANVERSION}" >> $GITFOX_CUSTOM_ENV + - echo "EXT_BRANCH=${EXT_BRANCH}" >> $GITFOX_CUSTOM_ENV + - echo "MAX_BRANCH=${MAX_BRANCH}" >> $GITFOX_CUSTOM_ENV + - echo "IPD_BRANCH=${IPD_BRANCH}" >> $GITFOX_CUSTOM_ENV - echo "export ZENTAOEXT_GIT_REPO=${ZENTAOEXT_GIT_REPO}" >> $GITFOX_CUSTOM_ENV - echo "export DOWNGRADE_GIT_REPO=${DOWNGRADE_GIT_REPO}" >> @@ -42,12 +48,12 @@ spec: script: - git clone -q http://${GITFOX_SERVER}/git/xuan/xuanxuan.git xuansrc && cd xuansrc && git checkout $XUANVERSION && cd - - - git clone --depth 1 -q + - git clone --depth 1 -q -b ${EXT_BRANCH} http://${GITFOX_SERVER}/git/${ZENTAOEXT_GIT_REPO}.git zentaoext - - git clone --depth 1 + - git clone --depth 1 -b ${MAX_BRANCH} http://${GITFOX_SERVER}/git/zentao/zentaomax.git zentaomax - - git clone --depth 1 + - git clone --depth 1 -b ${IPD_BRANCH} http://${GITFOX_SERVER}/git/zentao/zentaoipd.git zentaoipd - name: 版本变量设定 type: run @@ -101,15 +107,13 @@ spec: -f misc/ci/Dockerfile.test . - name: unit test type: run - when: | - build.target == "main" spec: envs: MYSQL_INTERNAL: "true" container: image: hub.qc.oop.cc/zentao-ztf:${{ build.number }}-${{ build.after }} script: - - git rev-list $(git rev-parse origin/main )..$(git rev-parse HEAD) + - git rev-list $(git rev-parse origin/$GITFOX_TARGET_BRANCH)..$(git rev-parse HEAD) - sh -c 'nohup /usr/bin/entrypoint.sh >/dev/null 2>&1 &' - . /etc/s6/s6-init/envs - sleep 5 diff --git a/.gitfox/unittestforcommitid.yaml b/.gitfox/unittestforcommitid.yaml index cd6799e728..894f511527 100644 --- a/.gitfox/unittestforcommitid.yaml +++ b/.gitfox/unittestforcommitid.yaml @@ -26,15 +26,13 @@ spec: - docker buildx build --pull --push --platform linux/amd64 --build-arg VERSION=${ZENTAO_VERSION} --build-arg MIRROR=true -t hub.qc.oop.cc/zentao-ztf:${GITFOX_BUILD_NUMBER}-${GITFOX_COMMIT} -f misc/ci/Dockerfile.test . - name: unit test type: run - when: | - build.target == "main" spec: envs: MYSQL_INTERNAL: "true" container: image: hub.qc.oop.cc/zentao-ztf:${{ build.number }}-${{ build.after }} script: - - git rev-list $(git rev-parse origin/main )..$(git rev-parse HEAD) + - git rev-list $(git rev-parse origin/$GITFOX_TARGET_BRANCH )..$(git rev-parse HEAD) - sh -c 'nohup /usr/bin/entrypoint.sh >/dev/null 2>&1 &' - . /etc/s6/s6-init/envs - sleep 5 diff --git a/VERSION b/VERSION index 2a813a8652..328328a48d 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -21.7 \ No newline at end of file +21.7.1 diff --git a/api/v1/entries/testresults.php b/api/v1/entries/testresults.php index a915d33511..cc570e834b 100644 --- a/api/v1/entries/testresults.php +++ b/api/v1/entries/testresults.php @@ -84,7 +84,7 @@ class testresultsEntry extends entry $reals[$stepID] = $step->real; } $this->setPost('result', $results); - $this->setPost('reals', $reals); + $this->setPost('real', $reals); } $control->runCase($runID, $caseID, $version); diff --git a/ci.json b/ci.json index ee64caeac2..c07e0e66df 100644 --- a/ci.json +++ b/ci.json @@ -6,13 +6,13 @@ }, "zentaoext": { "gitRepo": "zentao/zentaoext", - "gitVersion": "patch/11.7" + "gitVersion": "release/12.0" }, "zentaomax": { - "gitVersion": "patch/6.7" + "gitVersion": "release/7.0" }, "zentaoipd": { - "gitVersion": "patch/3.7" + "gitVersion": "release/4.0" }, "devops": { "gitRepo": "zentao/devops" diff --git a/config/config.php b/config/config.php index 682acf0585..0486149295 100644 --- a/config/config.php +++ b/config/config.php @@ -16,7 +16,7 @@ if(!class_exists('config')){class config{}} if(!function_exists('getWebRoot')){function getWebRoot(){}} /* 基本设置。Basic settings. */ -$config->version = '21.7'; // ZenTaoPHP的版本。 The version of ZenTaoPHP. Don't change it. +$config->version = '21.7.1'; // ZenTaoPHP的版本。 The version of ZenTaoPHP. Don't change it. $config->liteVersion = '1.2'; // 迅捷版版本。 The version of Lite. $config->charset = 'UTF-8'; // ZenTaoPHP的编码。 The encoding of ZenTaoPHP. $config->cookieLife = time() + 2592000; // Cookie的生存时间。The cookie life time. diff --git a/config/zentaopms.php b/config/zentaopms.php index 7f6d012c62..97041891c9 100644 --- a/config/zentaopms.php +++ b/config/zentaopms.php @@ -429,6 +429,7 @@ define('TABLE_ACL', '`' . $config->db->prefix . 'acl`'); define('TABLE_DESIGN', '`' . $config->db->prefix . 'design`'); define('TABLE_DESIGNSPEC', '`' . $config->db->prefix . 'designspec`'); +define('TABLE_DELIVERABLE', '`' . $config->db->prefix . 'deliverable`'); define('TABLE_DOCLIB', '`' . $config->db->prefix . 'doclib`'); define('TABLE_DOC', '`' . $config->db->prefix . 'doc`'); define('TABLE_DOCBLOCK', '`' . $config->db->prefix . 'docblock`'); @@ -672,6 +673,7 @@ $config->objectTables['demand'] = TABLE_DEMAND; $config->objectTables['demandpool'] = TABLE_DEMANDPOOL; $config->objectTables['demandspec'] = TABLE_DEMANDSPEC; $config->objectTables['demandreview'] = TABLE_DEMANDREVIEW; +$config->objectTables['deliverable'] = TABLE_DELIVERABLE; $config->objectTables['todo'] = TABLE_TODO; $config->objectTables['custom'] = TABLE_LANG; $config->objectTables['branch'] = TABLE_BRANCH; diff --git a/db/demo.sql b/db/demo.sql index 73027466c9..302ade2ed0 100644 --- a/db/demo.sql +++ b/db/demo.sql @@ -578,7 +578,8 @@ REPLACE INTO `zt_searchdict` (`key`, `value`) VALUES (39564, '验'), (39588, '骤'), (65292, ','); -REPLACE INTO `zt_searchindex` (`id`, `vision`, `objectType`, `objectID`, `title`, `content`, `addedDate`, `editedDate`) VALUES +TRUNCATE TABLE `zt_searchindex`; +INSERT INTO `zt_searchindex` (`id`, `vision`, `objectType`, `objectID`, `title`, `content`, `addedDate`, `editedDate`) VALUES (1, 'rnd', 'program', 1, ' 20225 19994 31649 29702', '', '2024-04-02 14:25:12', '2024-04-02 14:25:12'), (2, 'rnd', 'product', 1, ' 20844 21496 20225 19994 32593 31449 24314 35774', ' 24314 31435 20844 21496 20225 19994 32593 31449 65292 21487 20197 26356 22909 23545 22806 23637 31034 12290', '2024-04-02 14:30:13', '2024-04-02 14:30:13'), (3, 'rnd', 'product', 2, ' 20225 19994 20869 37096 24037 26102 31649 29702 31995 32479', '', '2024-04-02 14:30:55', '2024-04-02 14:30:55'), diff --git a/db/endemo.sql b/db/endemo.sql index 906cdc4be1..0ae568f0c4 100644 --- a/db/endemo.sql +++ b/db/endemo.sql @@ -577,7 +577,8 @@ REPLACE INTO `zt_searchdict` (`key`, `value`) VALUES (39564, '验'), (39588, '骤'), (65292, ','); -REPLACE INTO `zt_searchindex` (`id`, `vision`, `objectType`, `objectID`, `title`, `content`, `addedDate`, `editedDate`) VALUES +TRUNCATE TABLE `zt_searchindex`; +INSERT INTO `zt_searchindex` (`id`, `vision`, `objectType`, `objectID`, `title`, `content`, `addedDate`, `editedDate`) VALUES (1, 'rnd', 'program', 1, ' 20225 19994 31649 29702', '', '2024-04-02 14:25:12', '2024-04-02 14:25:12'), (2, 'rnd', 'product', 1, ' 20844 21496 20225 19994 32593 31449 24314 35774', ' 24314 31435 20844 21496 20225 19994 32593 31449 65292 21487 20197 26356 22909 23545 22806 23637 31034 12290', '2024-04-02 14:30:13', '2024-04-02 14:30:13'), (3, 'rnd', 'product', 2, ' 20225 19994 20869 37096 24037 26102 31649 29702 31995 32479', '', '2024-04-02 14:30:55', '2024-04-02 14:30:55'), diff --git a/db/standard/zentao21.7.1.sql b/db/standard/zentao21.7.1.sql new file mode 100644 index 0000000000..5d92c6b88e --- /dev/null +++ b/db/standard/zentao21.7.1.sql @@ -0,0 +1,4318 @@ +CREATE TABLE `zt_acl` ( + `id` mediumint(9) NOT NULL AUTO_INCREMENT, + `account` char(30) NOT NULL DEFAULT '', + `objectType` char(30) NOT NULL DEFAULT '', + `objectID` mediumint(9) NOT NULL DEFAULT 0, + `type` char(40) NOT NULL DEFAULT 'whitelist', + `source` char(30) NOT NULL DEFAULT '', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_action` ( + `id` int(11) unsigned NOT NULL AUTO_INCREMENT, + `objectType` varchar(30) NOT NULL DEFAULT '', + `objectID` mediumint(8) unsigned NOT NULL DEFAULT 0, + `product` text DEFAULT NULL, + `project` mediumint(8) unsigned NOT NULL DEFAULT 0, + `execution` mediumint(8) unsigned NOT NULL DEFAULT 0, + `actor` varchar(100) NOT NULL DEFAULT '', + `action` varchar(80) NOT NULL DEFAULT '', + `date` datetime DEFAULT NULL, + `comment` text DEFAULT NULL, + `files` text DEFAULT NULL, + `extra` text DEFAULT NULL, + `read` enum('0','1') NOT NULL DEFAULT '0', + `vision` varchar(10) NOT NULL DEFAULT 'rnd', + `efforted` tinyint(1) NOT NULL DEFAULT 0, + PRIMARY KEY (`id`), + KEY `date` (`date`), + KEY `actor` (`actor`), + KEY `project` (`project`), + KEY `action` (`action`), + KEY `objectID` (`objectID`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_actionrecent` ( + `id` int(11) unsigned NOT NULL AUTO_INCREMENT, + `objectType` varchar(30) NOT NULL DEFAULT '', + `objectID` mediumint(8) unsigned NOT NULL DEFAULT 0, + `product` text DEFAULT NULL, + `project` mediumint(8) unsigned NOT NULL DEFAULT 0, + `execution` mediumint(8) unsigned NOT NULL DEFAULT 0, + `actor` varchar(100) NOT NULL DEFAULT '', + `action` varchar(80) NOT NULL DEFAULT '', + `date` datetime DEFAULT NULL, + `comment` text DEFAULT NULL, + `files` text DEFAULT NULL, + `extra` text DEFAULT NULL, + `read` enum('0','1') NOT NULL DEFAULT '0', + `vision` varchar(10) NOT NULL DEFAULT 'rnd', + `efforted` tinyint(1) NOT NULL DEFAULT 0, + PRIMARY KEY (`id`), + KEY `date` (`date`), + KEY `actor` (`actor`), + KEY `project` (`project`), + KEY `action` (`action`), + KEY `objectID` (`objectID`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_activity` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `process` mediumint(9) NOT NULL DEFAULT 0, + `name` varchar(255) NOT NULL DEFAULT '', + `optional` varchar(255) NOT NULL DEFAULT '', + `tailorNorm` varchar(255) NOT NULL DEFAULT '', + `content` mediumtext DEFAULT NULL, + `assignedTo` varchar(30) NOT NULL DEFAULT '', + `status` varchar(30) NOT NULL DEFAULT '', + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `assignedBy` varchar(30) NOT NULL DEFAULT '', + `assignedDate` datetime DEFAULT NULL, + `order` mediumint(8) DEFAULT 0, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_ai_assistant` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `name` varchar(30) NOT NULL, + `modelId` mediumint(8) unsigned NOT NULL, + `desc` text NOT NULL, + `systemMessage` text NOT NULL, + `greetings` text NOT NULL, + `icon` varchar(30) NOT NULL DEFAULT 'coding-1', + `enabled` enum('0','1') NOT NULL DEFAULT '1', + `createdDate` datetime NOT NULL, + `publishedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_ai_message` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `appID` mediumint(8) unsigned NOT NULL, + `user` mediumint(8) unsigned NOT NULL, + `type` enum('req','res','ntf') NOT NULL, + `content` text NOT NULL, + `createdDate` datetime NOT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_ai_miniprogram` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `name` varchar(30) NOT NULL, + `category` varchar(30) NOT NULL, + `desc` text DEFAULT NULL, + `model` mediumint(8) unsigned DEFAULT NULL, + `icon` varchar(30) NOT NULL DEFAULT 'writinghand-7', + `createdBy` varchar(30) NOT NULL, + `createdDate` datetime NOT NULL, + `editedBy` varchar(30) NOT NULL, + `editedDate` datetime NOT NULL, + `published` enum('0','1') NOT NULL DEFAULT '0', + `publishedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + `prompt` text NOT NULL, + `builtIn` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_ai_miniprogramfield` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `appID` mediumint(8) unsigned NOT NULL, + `name` varchar(30) NOT NULL, + `type` enum('radio','checkbox','text','textarea') DEFAULT 'text', + `placeholder` text DEFAULT NULL, + `options` text DEFAULT NULL, + `required` enum('0','1') DEFAULT '1', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_ai_miniprogramstar` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `appID` mediumint(8) unsigned NOT NULL, + `userID` mediumint(8) unsigned NOT NULL, + `createdDate` datetime NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `appID` (`appID`,`userID`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_ai_model` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `type` varchar(20) NOT NULL, + `vendor` varchar(20) NOT NULL, + `credentials` text NOT NULL, + `proxy` text DEFAULT NULL, + `name` varchar(20) DEFAULT NULL, + `desc` text DEFAULT NULL, + `createdBy` varchar(30) NOT NULL, + `createdDate` datetime NOT NULL, + `editedBy` varchar(30) DEFAULT NULL, + `editedDate` datetime DEFAULT NULL, + `enabled` enum('0','1') NOT NULL DEFAULT '1', + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_ai_prompt` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `name` varchar(20) NOT NULL, + `desc` text DEFAULT NULL, + `model` mediumint(8) unsigned DEFAULT NULL, + `module` varchar(30) DEFAULT NULL, + `source` text DEFAULT NULL, + `targetForm` varchar(30) DEFAULT NULL, + `purpose` text DEFAULT NULL, + `elaboration` text DEFAULT NULL, + `role` text DEFAULT NULL, + `characterization` text DEFAULT NULL, + `status` enum('draft','active') NOT NULL DEFAULT 'draft', + `createdBy` varchar(30) NOT NULL, + `createdDate` datetime NOT NULL, + `editedBy` varchar(30) DEFAULT NULL, + `editedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_ai_promptrole` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `name` varchar(30) DEFAULT NULL, + `desc` text DEFAULT NULL, + `model` mediumint(8) unsigned DEFAULT NULL, + `role` text DEFAULT NULL, + `characterization` text DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_api` ( + `id` int(11) unsigned NOT NULL AUTO_INCREMENT, + `product` varchar(255) NOT NULL DEFAULT '', + `lib` int(11) unsigned NOT NULL DEFAULT 0, + `module` int(11) unsigned NOT NULL DEFAULT 0, + `title` varchar(100) NOT NULL DEFAULT '', + `path` varchar(255) NOT NULL DEFAULT '', + `protocol` varchar(10) NOT NULL DEFAULT '', + `method` varchar(10) NOT NULL DEFAULT '', + `requestType` varchar(100) NOT NULL DEFAULT '', + `responseType` varchar(100) NOT NULL DEFAULT '', + `status` varchar(20) NOT NULL DEFAULT '', + `owner` varchar(30) NOT NULL DEFAULT '0', + `desc` mediumtext DEFAULT NULL, + `version` smallint(6) unsigned NOT NULL DEFAULT 0, + `params` text DEFAULT NULL, + `paramsExample` text DEFAULT NULL, + `responseExample` text DEFAULT NULL, + `response` text DEFAULT NULL, + `commonParams` text DEFAULT NULL, + `addedBy` varchar(30) NOT NULL DEFAULT '0', + `addedDate` datetime DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_api_lib_release` ( + `id` int(11) unsigned NOT NULL AUTO_INCREMENT, + `lib` int(11) unsigned NOT NULL DEFAULT 0, + `desc` varchar(255) NOT NULL DEFAULT '', + `version` varchar(255) NOT NULL DEFAULT '', + `snap` mediumtext DEFAULT NULL, + `addedBy` varchar(30) NOT NULL DEFAULT '0', + `addedDate` datetime DEFAULT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_apispec` ( + `id` int(11) unsigned NOT NULL AUTO_INCREMENT, + `doc` int(11) unsigned NOT NULL DEFAULT 0, + `module` int(11) unsigned NOT NULL DEFAULT 0, + `title` varchar(100) NOT NULL DEFAULT '', + `path` varchar(255) NOT NULL DEFAULT '', + `protocol` varchar(10) NOT NULL DEFAULT '', + `method` varchar(10) NOT NULL DEFAULT '', + `requestType` varchar(100) NOT NULL DEFAULT '', + `responseType` varchar(100) NOT NULL DEFAULT '', + `status` varchar(20) NOT NULL DEFAULT '', + `owner` varchar(255) NOT NULL DEFAULT '0', + `desc` mediumtext DEFAULT NULL, + `version` smallint(6) unsigned NOT NULL DEFAULT 0, + `params` text DEFAULT NULL, + `paramsExample` text DEFAULT NULL, + `responseExample` text DEFAULT NULL, + `response` text DEFAULT NULL, + `addedBy` varchar(30) NOT NULL DEFAULT '0', + `addedDate` datetime DEFAULT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_apistruct` ( + `id` int(11) unsigned NOT NULL AUTO_INCREMENT, + `lib` int(11) unsigned NOT NULL DEFAULT 0, + `name` varchar(30) NOT NULL DEFAULT '', + `type` varchar(50) NOT NULL DEFAULT '', + `desc` mediumtext DEFAULT NULL, + `version` smallint(6) unsigned NOT NULL DEFAULT 0, + `attribute` text DEFAULT NULL, + `addedBy` varchar(30) NOT NULL DEFAULT '0', + `addedDate` datetime DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_apistruct_spec` ( + `id` int(11) unsigned NOT NULL AUTO_INCREMENT, + `name` varchar(255) NOT NULL DEFAULT '', + `type` varchar(50) NOT NULL DEFAULT '', + `desc` varchar(255) NOT NULL DEFAULT '', + `attribute` text DEFAULT NULL, + `version` smallint(6) unsigned NOT NULL DEFAULT 0, + `addedBy` varchar(30) NOT NULL DEFAULT '0', + `addedDate` datetime DEFAULT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_approval` ( + `id` mediumint(8) NOT NULL AUTO_INCREMENT, + `flow` mediumint(8) NOT NULL DEFAULT 0, + `objectType` varchar(30) NOT NULL DEFAULT '', + `objectID` mediumint(9) NOT NULL DEFAULT 0, + `nodes` mediumtext DEFAULT NULL, + `version` mediumint(9) NOT NULL DEFAULT 0, + `status` varchar(20) NOT NULL DEFAULT 'doing', + `result` varchar(20) NOT NULL DEFAULT '', + `extra` text DEFAULT NULL, + `createdBy` char(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `deleted` tinyint(4) NOT NULL DEFAULT 0, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_approvalflow` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `name` varchar(255) NOT NULL DEFAULT '', + `code` varchar(100) NOT NULL DEFAULT '', + `desc` mediumtext DEFAULT NULL, + `version` mediumint(8) NOT NULL DEFAULT 1, + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `workflow` varchar(30) NOT NULL DEFAULT '', + `deleted` tinyint(4) NOT NULL DEFAULT 0, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_approvalflowobject` ( + `id` int(8) NOT NULL AUTO_INCREMENT, + `root` int(8) NOT NULL DEFAULT 0, + `flow` int(8) NOT NULL DEFAULT 0, + `objectType` char(30) NOT NULL DEFAULT '', + `objectID` mediumint(9) NOT NULL DEFAULT 0, + `extra` varchar(255) NOT NULL DEFAULT '', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_approvalflowspec` ( + `id` mediumint(8) NOT NULL AUTO_INCREMENT, + `flow` mediumint(8) NOT NULL DEFAULT 0, + `version` mediumint(8) NOT NULL DEFAULT 0, + `nodes` mediumtext DEFAULT NULL, + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_approvalnode` ( + `id` mediumint(8) NOT NULL AUTO_INCREMENT, + `approval` mediumint(8) NOT NULL DEFAULT 0, + `type` enum('review','cc') NOT NULL DEFAULT 'review', + `title` varchar(255) NOT NULL DEFAULT '', + `account` char(30) NOT NULL DEFAULT '', + `node` varchar(100) NOT NULL DEFAULT '', + `reviewType` varchar(100) NOT NULL DEFAULT 'manual', + `agentType` varchar(100) NOT NULL DEFAULT 'pass', + `multipleType` enum('and','or') NOT NULL DEFAULT 'and', + `percent` smallint(6) NOT NULL DEFAULT 0, + `needAll` enum('0','1') NOT NULL DEFAULT '0', + `solicit` enum('0','1') NOT NULL DEFAULT '0', + `prev` mediumtext DEFAULT NULL, + `next` mediumtext DEFAULT NULL, + `status` varchar(20) NOT NULL DEFAULT 'wait', + `result` varchar(10) NOT NULL DEFAULT '', + `date` date DEFAULT NULL, + `opinion` mediumtext DEFAULT NULL, + `extra` mediumtext DEFAULT NULL, + `revertTo` char(30) NOT NULL DEFAULT '', + `forwardBy` char(30) NOT NULL DEFAULT '', + `reviewedBy` char(30) NOT NULL DEFAULT '', + `reviewedDate` datetime DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `idx_reviewed_date` (`reviewedDate`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_approvalobject` ( + `id` int(8) NOT NULL AUTO_INCREMENT, + `approval` int(8) NOT NULL DEFAULT 0, + `objectType` char(30) NOT NULL DEFAULT '', + `objectID` mediumint(8) NOT NULL DEFAULT 0, + `reviewers` text DEFAULT NULL, + `opinion` text DEFAULT NULL, + `result` varchar(10) NOT NULL DEFAULT '', + `status` varchar(30) NOT NULL DEFAULT '', + `appliedBy` char(30) NOT NULL DEFAULT '', + `appliedDate` datetime DEFAULT NULL, + `desc` text DEFAULT NULL, + `extra` varchar(255) NOT NULL DEFAULT '', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_approvalrole` ( + `id` int(8) NOT NULL AUTO_INCREMENT, + `code` char(30) NOT NULL DEFAULT '', + `name` varchar(255) NOT NULL DEFAULT '', + `desc` text DEFAULT NULL, + `users` longtext DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_artifactrepo` ( + `id` smallint(8) unsigned NOT NULL AUTO_INCREMENT, + `name` varchar(45) NOT NULL DEFAULT '', + `products` varchar(255) NOT NULL DEFAULT '', + `serverID` smallint(8) NOT NULL DEFAULT 0, + `repoName` varchar(45) NOT NULL DEFAULT '', + `format` varchar(10) NOT NULL DEFAULT '', + `type` char(7) NOT NULL DEFAULT '', + `status` varchar(10) NOT NULL DEFAULT '', + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `deleted` tinyint(4) unsigned NOT NULL DEFAULT 0, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_assetlib` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `name` varchar(255) NOT NULL DEFAULT '', + `type` varchar(255) NOT NULL DEFAULT '', + `desc` mediumtext DEFAULT NULL, + `order` smallint(5) unsigned NOT NULL DEFAULT 0, + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_attend` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `account` char(30) NOT NULL DEFAULT '', + `date` date DEFAULT NULL, + `signIn` time DEFAULT NULL, + `signOut` time DEFAULT NULL, + `status` varchar(30) NOT NULL DEFAULT '', + `ip` varchar(100) NOT NULL DEFAULT '', + `device` varchar(30) NOT NULL DEFAULT '', + `client` varchar(20) NOT NULL DEFAULT '', + `manualIn` time DEFAULT NULL, + `manualOut` time DEFAULT NULL, + `reason` varchar(30) NOT NULL DEFAULT '', + `desc` text DEFAULT NULL, + `reviewStatus` varchar(30) DEFAULT NULL, + `reviewedBy` char(30) NOT NULL DEFAULT '', + `reviewedDate` datetime DEFAULT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `attend` (`date`,`account`), + KEY `account` (`account`), + KEY `date` (`date`), + KEY `status` (`status`), + KEY `reason` (`reason`), + KEY `reviewStatus` (`reviewStatus`), + KEY `reviewedBy` (`reviewedBy`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_attendstat` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `account` char(30) NOT NULL DEFAULT '', + `month` char(10) NOT NULL DEFAULT '', + `normal` decimal(12,2) NOT NULL DEFAULT 0.00, + `late` decimal(12,2) NOT NULL DEFAULT 0.00, + `early` decimal(12,2) NOT NULL DEFAULT 0.00, + `absent` decimal(12,2) NOT NULL DEFAULT 0.00, + `trip` decimal(12,2) NOT NULL DEFAULT 0.00, + `egress` decimal(12,2) NOT NULL DEFAULT 0.00, + `lieu` decimal(12,2) NOT NULL DEFAULT 0.00, + `paidLeave` decimal(12,2) NOT NULL DEFAULT 0.00, + `unpaidLeave` decimal(12,2) NOT NULL DEFAULT 0.00, + `timeOvertime` decimal(12,2) NOT NULL DEFAULT 0.00, + `restOvertime` decimal(12,2) NOT NULL DEFAULT 0.00, + `holidayOvertime` decimal(12,2) NOT NULL DEFAULT 0.00, + `deserve` decimal(12,2) NOT NULL DEFAULT 0.00, + `actual` decimal(12,2) NOT NULL DEFAULT 0.00, + `status` char(30) NOT NULL DEFAULT '', + PRIMARY KEY (`id`), + UNIQUE KEY `attend` (`month`,`account`), + KEY `account` (`account`), + KEY `month` (`month`), + KEY `status` (`status`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_auditcl` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `model` char(30) NOT NULL DEFAULT 'waterfall', + `practiceArea` char(30) NOT NULL DEFAULT '', + `type` char(30) NOT NULL DEFAULT '', + `title` varchar(255) NOT NULL DEFAULT '', + `objectType` char(30) NOT NULL DEFAULT '', + `objectID` int(11) NOT NULL DEFAULT 0, + `assignedTo` varchar(30) NOT NULL DEFAULT '', + `status` varchar(30) NOT NULL DEFAULT '', + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `assignedBy` varchar(30) NOT NULL DEFAULT '', + `assignedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_auditplan` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `dateType` char(30) NOT NULL DEFAULT '', + `config` text DEFAULT NULL, + `objectID` mediumint(9) NOT NULL DEFAULT 0, + `objectType` char(30) NOT NULL DEFAULT '', + `process` mediumint(9) NOT NULL DEFAULT 0, + `processType` char(30) NOT NULL DEFAULT '', + `checkDate` date DEFAULT NULL, + `checkedBy` varchar(30) NOT NULL DEFAULT '', + `realCheckDate` date DEFAULT NULL, + `result` char(30) NOT NULL DEFAULT '', + `project` mediumint(8) unsigned NOT NULL DEFAULT 0, + `execution` mediumint(8) unsigned NOT NULL DEFAULT 0, + `assignedTo` varchar(30) NOT NULL DEFAULT '', + `status` varchar(30) NOT NULL DEFAULT '', + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `assignedBy` varchar(30) NOT NULL DEFAULT '', + `assignedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + `checkBy` varchar(30) NOT NULL DEFAULT '', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_auditresult` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `auditplan` mediumint(8) NOT NULL DEFAULT 0, + `listID` mediumint(8) NOT NULL DEFAULT 0, + `result` char(30) NOT NULL DEFAULT '', + `checkedBy` varchar(30) NOT NULL DEFAULT '', + `checkedDate` date DEFAULT NULL, + `comment` text DEFAULT NULL, + `severity` char(30) NOT NULL DEFAULT '', + `assignedTo` varchar(30) NOT NULL DEFAULT '', + `status` varchar(30) NOT NULL DEFAULT '', + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `assignedBy` varchar(30) NOT NULL DEFAULT '', + `assignedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_autocache` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `code` varchar(30) NOT NULL DEFAULT '', + `fields` varchar(255) NOT NULL DEFAULT '', + PRIMARY KEY (`id`), + UNIQUE KEY `cache` (`code`,`fields`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_automation` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `node` int(11) unsigned NOT NULL DEFAULT 0, + `product` int(11) unsigned NOT NULL DEFAULT 0, + `scriptPath` varchar(255) NOT NULL DEFAULT '', + `shell` mediumtext DEFAULT NULL, + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_basicmeas` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `purpose` varchar(50) NOT NULL DEFAULT '', + `scope` char(30) NOT NULL DEFAULT '', + `object` char(30) NOT NULL DEFAULT '', + `name` varchar(90) NOT NULL DEFAULT '', + `code` char(30) NOT NULL DEFAULT '', + `unit` varchar(100) NOT NULL DEFAULT '', + `configure` text DEFAULT NULL, + `params` text DEFAULT NULL, + `definition` text DEFAULT NULL, + `source` varchar(255) NOT NULL DEFAULT '', + `collectType` varchar(30) NOT NULL DEFAULT '', + `collectConf` text DEFAULT NULL, + `execTime` varchar(30) NOT NULL DEFAULT '', + `collectedBy` varchar(10) NOT NULL DEFAULT '', + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `order` mediumint(8) unsigned NOT NULL DEFAULT 0, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`), + UNIQUE KEY `code` (`code`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_block` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `account` char(30) NOT NULL DEFAULT '', + `dashboard` varchar(20) NOT NULL DEFAULT '', + `module` varchar(20) NOT NULL DEFAULT '', + `title` varchar(100) NOT NULL DEFAULT '', + `block` varchar(30) NOT NULL DEFAULT '', + `code` varchar(30) NOT NULL DEFAULT '', + `width` enum('1','2','3') NOT NULL DEFAULT '1', + `height` smallint(6) unsigned NOT NULL DEFAULT 3, + `left` enum('0','1','2') NOT NULL DEFAULT '0', + `top` smallint(5) unsigned NOT NULL DEFAULT 0, + `params` text DEFAULT NULL, + `hidden` tinyint(1) unsigned NOT NULL DEFAULT 0, + `vision` varchar(10) NOT NULL DEFAULT 'rnd', + PRIMARY KEY (`id`), + KEY `account` (`account`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_branch` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `product` mediumint(8) unsigned NOT NULL DEFAULT 0, + `name` varchar(255) NOT NULL DEFAULT '', + `default` enum('0','1') NOT NULL DEFAULT '0', + `status` enum('active','closed') NOT NULL DEFAULT 'active', + `desc` varchar(255) NOT NULL DEFAULT '', + `createdDate` date DEFAULT NULL, + `closedDate` date DEFAULT NULL, + `order` smallint(6) unsigned NOT NULL DEFAULT 0, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`), + KEY `product` (`product`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_budget` ( + `id` int(8) NOT NULL AUTO_INCREMENT, + `project` mediumint(8) unsigned NOT NULL DEFAULT 0, + `stage` char(30) NOT NULL DEFAULT '', + `subject` mediumint(8) NOT NULL DEFAULT 0, + `amount` char(30) NOT NULL DEFAULT '', + `name` varchar(255) NOT NULL DEFAULT '', + `desc` mediumtext DEFAULT NULL, + `createdBy` char(30) NOT NULL DEFAULT '', + `createdDate` date DEFAULT NULL, + `lastEditedBy` char(30) NOT NULL DEFAULT '', + `lastEditedDate` date DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_bug` ( + `id` mediumint(8) NOT NULL AUTO_INCREMENT, + `project` mediumint(8) unsigned NOT NULL DEFAULT 0, + `product` mediumint(8) unsigned NOT NULL DEFAULT 0, + `injection` mediumint(8) unsigned NOT NULL DEFAULT 0, + `identify` mediumint(8) unsigned NOT NULL DEFAULT 0, + `branch` mediumint(8) unsigned NOT NULL DEFAULT 0, + `module` mediumint(8) unsigned NOT NULL DEFAULT 0, + `execution` mediumint(8) unsigned NOT NULL DEFAULT 0, + `plan` mediumint(8) unsigned NOT NULL DEFAULT 0, + `story` mediumint(8) unsigned NOT NULL DEFAULT 0, + `storyVersion` smallint(6) NOT NULL DEFAULT 1, + `task` mediumint(8) unsigned NOT NULL DEFAULT 0, + `toTask` mediumint(8) unsigned NOT NULL DEFAULT 0, + `toStory` mediumint(8) NOT NULL DEFAULT 0, + `title` varchar(255) NOT NULL DEFAULT '', + `keywords` varchar(255) NOT NULL DEFAULT '', + `severity` tinyint(4) NOT NULL DEFAULT 0, + `pri` tinyint(3) unsigned NOT NULL DEFAULT 0, + `type` varchar(30) NOT NULL DEFAULT '', + `os` varchar(255) NOT NULL DEFAULT '', + `browser` varchar(255) NOT NULL DEFAULT '', + `hardware` varchar(30) NOT NULL DEFAULT '', + `found` varchar(30) NOT NULL DEFAULT '', + `steps` mediumtext DEFAULT NULL, + `status` enum('active','resolved','closed') NOT NULL DEFAULT 'active', + `subStatus` varchar(30) NOT NULL DEFAULT '', + `color` char(7) NOT NULL DEFAULT '', + `confirmed` tinyint(1) NOT NULL DEFAULT 0, + `activatedCount` smallint(6) NOT NULL DEFAULT 0, + `activatedDate` datetime DEFAULT NULL, + `feedbackBy` varchar(100) NOT NULL DEFAULT '', + `notifyEmail` varchar(100) NOT NULL DEFAULT '', + `mailto` text DEFAULT NULL, + `openedBy` varchar(30) NOT NULL DEFAULT '', + `openedDate` datetime DEFAULT NULL, + `openedBuild` varchar(255) NOT NULL DEFAULT '', + `assignedTo` varchar(30) NOT NULL DEFAULT '', + `assignedDate` datetime DEFAULT NULL, + `deadline` date DEFAULT NULL, + `resolvedBy` varchar(30) NOT NULL DEFAULT '', + `resolution` varchar(30) NOT NULL DEFAULT '', + `resolvedBuild` varchar(30) NOT NULL DEFAULT '', + `resolvedDate` datetime DEFAULT NULL, + `closedBy` varchar(30) NOT NULL DEFAULT '', + `closedDate` datetime DEFAULT NULL, + `duplicateBug` mediumint(8) unsigned NOT NULL DEFAULT 0, + `relatedBug` varchar(255) NOT NULL DEFAULT '', + `case` mediumint(8) unsigned NOT NULL DEFAULT 0, + `caseVersion` smallint(6) NOT NULL DEFAULT 1, + `feedback` mediumint(8) unsigned NOT NULL DEFAULT 0, + `result` mediumint(8) unsigned NOT NULL DEFAULT 0, + `repo` mediumint(8) unsigned NOT NULL DEFAULT 0, + `mr` mediumint(8) unsigned NOT NULL DEFAULT 0, + `entry` text DEFAULT NULL, + `lines` varchar(10) NOT NULL DEFAULT '', + `v1` varchar(255) NOT NULL DEFAULT '', + `v2` varchar(255) NOT NULL DEFAULT '', + `repoType` varchar(30) NOT NULL DEFAULT '', + `issueKey` varchar(50) NOT NULL DEFAULT '', + `testtask` mediumint(8) unsigned NOT NULL DEFAULT 0, + `lastEditedBy` varchar(30) NOT NULL DEFAULT '', + `lastEditedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`), + KEY `product` (`product`), + KEY `execution` (`execution`), + KEY `status` (`status`), + KEY `plan` (`plan`), + KEY `story` (`story`), + KEY `case` (`case`), + KEY `toStory` (`toStory`), + KEY `result` (`result`), + KEY `assignedTo` (`assignedTo`), + KEY `deleted` (`deleted`), + KEY `project` (`project`), + KEY `product_status_deleted` (`product`,`status`,`deleted`), + KEY `idx_repo` (`repo`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_build` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `project` mediumint(8) unsigned NOT NULL DEFAULT 0, + `product` mediumint(8) unsigned NOT NULL DEFAULT 0, + `branch` varchar(255) NOT NULL DEFAULT '0', + `execution` mediumint(8) unsigned NOT NULL DEFAULT 0, + `builds` varchar(255) NOT NULL DEFAULT '', + `name` char(150) NOT NULL DEFAULT '', + `system` mediumint(8) unsigned NOT NULL DEFAULT 0, + `scmPath` char(255) NOT NULL DEFAULT '', + `filePath` char(255) NOT NULL DEFAULT '', + `date` date DEFAULT NULL, + `stories` text DEFAULT NULL, + `bugs` text DEFAULT NULL, + `artifactRepoID` mediumint(8) unsigned NOT NULL DEFAULT 0, + `builder` char(30) NOT NULL DEFAULT '', + `desc` mediumtext DEFAULT NULL, + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`), + KEY `product` (`product`), + KEY `execution` (`execution`), + KEY `idx_system` (`system`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_burn` ( + `execution` mediumint(8) unsigned NOT NULL DEFAULT 0, + `product` mediumint(8) unsigned NOT NULL DEFAULT 0, + `task` mediumint(8) unsigned NOT NULL DEFAULT 0, + `date` date NOT NULL, + `estimate` float NOT NULL DEFAULT 0, + `left` float NOT NULL DEFAULT 0, + `consumed` float NOT NULL DEFAULT 0, + `storyPoint` float NOT NULL DEFAULT 0, + UNIQUE KEY `execution_task` (`execution`,`date`,`task`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_case` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `project` mediumint(8) unsigned NOT NULL DEFAULT 0, + `product` mediumint(8) unsigned NOT NULL DEFAULT 0, + `execution` mediumint(8) unsigned NOT NULL DEFAULT 0, + `branch` mediumint(8) unsigned NOT NULL DEFAULT 0, + `lib` mediumint(8) unsigned NOT NULL DEFAULT 0, + `module` mediumint(8) unsigned NOT NULL DEFAULT 0, + `path` mediumint(8) unsigned NOT NULL DEFAULT 0, + `story` mediumint(30) unsigned NOT NULL DEFAULT 0, + `storyVersion` smallint(6) NOT NULL DEFAULT 1, + `title` varchar(255) NOT NULL DEFAULT '', + `precondition` text DEFAULT NULL, + `keywords` varchar(255) NOT NULL DEFAULT '', + `pri` tinyint(3) unsigned NOT NULL DEFAULT 3, + `type` char(30) NOT NULL DEFAULT '1', + `auto` varchar(10) NOT NULL DEFAULT 'no', + `frame` varchar(10) NOT NULL DEFAULT '', + `stage` varchar(255) NOT NULL DEFAULT '', + `howRun` varchar(30) NOT NULL DEFAULT '', + `script` longtext DEFAULT NULL, + `scriptedBy` varchar(30) NOT NULL DEFAULT '', + `scriptedDate` date DEFAULT NULL, + `scriptStatus` varchar(30) NOT NULL DEFAULT '', + `scriptLocation` varchar(255) NOT NULL DEFAULT '', + `status` char(30) NOT NULL DEFAULT '1', + `subStatus` varchar(30) NOT NULL DEFAULT '', + `color` char(7) NOT NULL DEFAULT '', + `frequency` enum('1','2','3') NOT NULL DEFAULT '1', + `order` tinyint(30) unsigned NOT NULL DEFAULT 0, + `openedBy` char(30) NOT NULL DEFAULT '', + `openedDate` datetime DEFAULT NULL, + `reviewedBy` varchar(255) NOT NULL DEFAULT '', + `reviewedDate` date DEFAULT NULL, + `lastEditedBy` char(30) NOT NULL DEFAULT '', + `lastEditedDate` datetime DEFAULT NULL, + `version` tinyint(3) unsigned NOT NULL DEFAULT 0, + `linkCase` varchar(255) NOT NULL DEFAULT '', + `fromBug` mediumint(8) unsigned NOT NULL DEFAULT 0, + `fromCaseID` mediumint(8) unsigned NOT NULL DEFAULT 0, + `fromCaseVersion` mediumint(8) unsigned NOT NULL DEFAULT 1, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + `lastRunner` varchar(30) NOT NULL DEFAULT '', + `lastRunDate` datetime DEFAULT NULL, + `lastRunResult` char(30) NOT NULL DEFAULT '', + `scene` int(11) NOT NULL DEFAULT 0, + `sort` int(11) NOT NULL DEFAULT 0, + PRIMARY KEY (`id`), + KEY `product` (`product`), + KEY `story` (`story`), + KEY `fromBug` (`fromBug`), + KEY `module` (`module`), + KEY `scene` (`scene`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_casespec` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `case` mediumint(9) NOT NULL DEFAULT 0, + `version` smallint(6) NOT NULL DEFAULT 0, + `title` varchar(255) NOT NULL DEFAULT '', + `precondition` text DEFAULT NULL, + `files` text DEFAULT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `case` (`case`,`version`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_casestep` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `parent` mediumint(8) unsigned NOT NULL DEFAULT 0, + `case` mediumint(8) unsigned NOT NULL DEFAULT 0, + `version` smallint(6) unsigned NOT NULL DEFAULT 0, + `type` varchar(10) NOT NULL DEFAULT 'step', + `desc` text DEFAULT NULL, + `expect` text DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `case` (`case`), + KEY `version` (`version`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_cfd` ( + `id` int(8) NOT NULL AUTO_INCREMENT, + `execution` int(8) NOT NULL DEFAULT 0, + `type` char(30) NOT NULL DEFAULT '', + `name` char(30) NOT NULL DEFAULT '', + `count` smallint(6) NOT NULL DEFAULT 0, + `date` date DEFAULT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `execution_type_name_date` (`execution`,`type`,`name`,`date`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_chart` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `name` varchar(255) NOT NULL DEFAULT '', + `code` varchar(255) NOT NULL DEFAULT '', + `driver` enum('mysql','duckdb') NOT NULL DEFAULT 'mysql', + `mode` enum('text','builder') NOT NULL DEFAULT 'builder', + `dimension` mediumint(8) unsigned NOT NULL DEFAULT 0, + `type` varchar(30) NOT NULL DEFAULT '', + `group` varchar(255) NOT NULL DEFAULT '', + `dataset` varchar(30) NOT NULL DEFAULT '0', + `desc` text DEFAULT NULL, + `acl` enum('open','private') NOT NULL DEFAULT 'open', + `whitelist` text DEFAULT NULL, + `settings` mediumtext DEFAULT NULL, + `filters` mediumtext DEFAULT NULL, + `step` tinyint(3) unsigned NOT NULL DEFAULT 0, + `fields` mediumtext DEFAULT NULL, + `langs` text DEFAULT NULL, + `sql` mediumtext DEFAULT NULL, + `version` varchar(10) NOT NULL DEFAULT '1', + `stage` enum('draft','published') NOT NULL DEFAULT 'draft', + `builtin` tinyint(1) unsigned NOT NULL DEFAULT 0, + `objects` mediumtext DEFAULT NULL, + `createdBy` char(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `deleted` tinyint(4) NOT NULL DEFAULT 0, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_charter` ( + `id` int(8) NOT NULL AUTO_INCREMENT, + `name` varchar(255) NOT NULL DEFAULT '', + `level` varchar(255) NOT NULL DEFAULT '', + `category` char(30) NOT NULL DEFAULT '', + `market` varchar(30) NOT NULL DEFAULT '', + `check` enum('0','1') NOT NULL DEFAULT '0', + `appliedBy` char(30) NOT NULL DEFAULT '', + `appliedDate` datetime DEFAULT NULL, + `appliedReviewer` text DEFAULT NULL, + `budget` char(30) NOT NULL DEFAULT '', + `budgetUnit` char(30) NOT NULL DEFAULT '', + `product` text DEFAULT NULL, + `roadmap` text DEFAULT NULL, + `plan` text DEFAULT NULL, + `type` varchar(30) NOT NULL DEFAULT 'roadmap', + `filesConfig` text DEFAULT NULL, + `spec` mediumtext DEFAULT NULL, + `status` char(30) NOT NULL DEFAULT '', + `createdBy` char(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `charterFiles` text DEFAULT NULL, + `completionFiles` text DEFAULT NULL, + `canceledFiles` text DEFAULT NULL, + `prevCanceledStatus` varchar(30) NOT NULL DEFAULT '', + `closedBy` char(30) NOT NULL DEFAULT '', + `closedDate` datetime DEFAULT NULL, + `closedReason` varchar(255) NOT NULL DEFAULT '', + `activatedBy` char(30) NOT NULL DEFAULT '', + `activatedDate` datetime DEFAULT NULL, + `activatedReviewer` text DEFAULT NULL, + `reviewedBy` varchar(255) NOT NULL DEFAULT '', + `reviewedResult` char(30) NOT NULL DEFAULT '', + `reviewedDate` datetime DEFAULT NULL, + `reviewStatus` varchar(30) NOT NULL DEFAULT 'wait', + `completedBy` varchar(30) NOT NULL DEFAULT '', + `completedDate` datetime DEFAULT NULL, + `completedReviewer` text DEFAULT NULL, + `canceledBy` varchar(30) NOT NULL DEFAULT '', + `canceledDate` datetime DEFAULT NULL, + `canceledReviewer` text DEFAULT NULL, + `meetingDate` date DEFAULT NULL, + `meetingLocation` varchar(255) NOT NULL DEFAULT '', + `meetingMinutes` mediumtext DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_cmcl` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `type` char(30) NOT NULL DEFAULT '', + `projectType` varchar(255) NOT NULL DEFAULT '', + `title` int(11) NOT NULL DEFAULT 0, + `contents` text DEFAULT NULL, + `assignedTo` varchar(30) NOT NULL DEFAULT '', + `status` varchar(30) NOT NULL DEFAULT '', + `order` int(11) NOT NULL DEFAULT 0, + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_company` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `name` char(120) DEFAULT NULL, + `phone` char(20) DEFAULT NULL, + `fax` char(20) DEFAULT NULL, + `address` char(120) DEFAULT NULL, + `zipcode` char(10) DEFAULT NULL, + `website` char(120) DEFAULT NULL, + `backyard` char(120) DEFAULT NULL, + `guest` enum('1','0') NOT NULL DEFAULT '0', + `admins` char(255) DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_compile` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `name` varchar(50) NOT NULL DEFAULT '', + `job` mediumint(8) unsigned NOT NULL DEFAULT 0, + `queue` mediumint(8) NOT NULL DEFAULT 0, + `status` varchar(100) NOT NULL DEFAULT '', + `logs` longtext DEFAULT NULL, + `atTime` varchar(10) NOT NULL DEFAULT '', + `testtask` mediumint(8) unsigned NOT NULL DEFAULT 0, + `tag` varchar(255) NOT NULL DEFAULT '', + `times` tinyint(3) unsigned NOT NULL DEFAULT 0, + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `updateDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`), + KEY `idx_created_status` (`createdDate`,`status`,`deleted`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_config` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `vision` varchar(10) NOT NULL DEFAULT '', + `owner` char(30) NOT NULL DEFAULT '', + `module` varchar(30) NOT NULL DEFAULT '', + `section` char(30) NOT NULL DEFAULT '', + `key` char(30) NOT NULL DEFAULT '', + `value` longtext DEFAULT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `unique` (`vision`,`owner`,`module`,`section`,`key`), + KEY `vision` (`vision`), + KEY `owner` (`owner`), + KEY `module` (`module`), + KEY `key` (`key`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_cron` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `m` varchar(20) NOT NULL DEFAULT '', + `h` varchar(20) NOT NULL DEFAULT '', + `dom` varchar(20) NOT NULL DEFAULT '', + `mon` varchar(20) NOT NULL DEFAULT '', + `dow` varchar(20) NOT NULL DEFAULT '', + `command` text DEFAULT NULL, + `remark` varchar(255) NOT NULL DEFAULT '', + `type` varchar(20) NOT NULL DEFAULT '', + `buildin` tinyint(1) NOT NULL DEFAULT 0, + `status` varchar(20) NOT NULL DEFAULT '', + `lastTime` datetime DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `lastTime` (`lastTime`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_dashboard` ( + `id` mediumint(8) NOT NULL AUTO_INCREMENT, + `name` varchar(255) NOT NULL DEFAULT '', + `dimension` int(8) NOT NULL DEFAULT 0, + `module` mediumint(8) NOT NULL DEFAULT 0, + `desc` mediumtext DEFAULT NULL, + `layout` mediumtext DEFAULT NULL, + `filters` mediumtext DEFAULT NULL, + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `deleted` tinyint(4) NOT NULL DEFAULT 0, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_dataset` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `name` varchar(155) NOT NULL DEFAULT '', + `sql` text DEFAULT NULL, + `fields` mediumtext DEFAULT NULL, + `objects` mediumtext DEFAULT NULL, + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `deleted` tinyint(4) NOT NULL DEFAULT 0, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_dataview` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `group` mediumint(8) unsigned NOT NULL DEFAULT 0, + `name` varchar(155) NOT NULL DEFAULT '', + `code` varchar(50) NOT NULL DEFAULT '', + `mode` varchar(50) NOT NULL DEFAULT 'builder', + `driver` enum('mysql','duckdb') NOT NULL DEFAULT 'mysql', + `view` varchar(57) NOT NULL DEFAULT '', + `sql` text DEFAULT NULL, + `fields` text DEFAULT NULL, + `langs` text DEFAULT NULL, + `objects` text DEFAULT NULL, + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` varchar(30) DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `deleted` tinyint(4) NOT NULL DEFAULT 0, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_demand` ( + `id` int(8) NOT NULL AUTO_INCREMENT, + `pool` int(8) NOT NULL DEFAULT 0, + `module` int(8) NOT NULL DEFAULT 0, + `product` varchar(255) NOT NULL DEFAULT '', + `parent` mediumint(8) NOT NULL DEFAULT 0, + `pri` char(30) NOT NULL DEFAULT '', + `category` char(30) NOT NULL DEFAULT '', + `source` char(30) NOT NULL DEFAULT '', + `sourceNote` varchar(255) NOT NULL DEFAULT '', + `title` varchar(255) NOT NULL DEFAULT '', + `feedbackedBy` varchar(255) NOT NULL DEFAULT '', + `email` varchar(255) NOT NULL DEFAULT '', + `assignedTo` char(30) NOT NULL DEFAULT '', + `assignedDate` datetime DEFAULT NULL, + `reviewedBy` text DEFAULT NULL, + `reviewedDate` datetime DEFAULT NULL, + `status` char(30) NOT NULL DEFAULT '', + `stage` enum('wait','distributed','inroadmap','incharter','developing','delivering','delivered','closed') NOT NULL DEFAULT 'wait', + `duration` char(30) NOT NULL DEFAULT '', + `BSA` char(30) NOT NULL DEFAULT '', + `story` mediumint(8) NOT NULL DEFAULT 0, + `roadmap` mediumint(8) NOT NULL DEFAULT 0, + `createdBy` char(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `mailto` text DEFAULT NULL, + `duplicateDemand` mediumint(8) DEFAULT NULL, + `childDemands` varchar(255) NOT NULL DEFAULT '', + `version` varchar(255) NOT NULL DEFAULT '', + `parentVersion` smallint(6) NOT NULL DEFAULT 0, + `vision` varchar(255) NOT NULL DEFAULT 'or', + `color` varchar(255) NOT NULL DEFAULT '', + `changedBy` char(30) NOT NULL DEFAULT '', + `changedDate` datetime DEFAULT NULL, + `closedBy` char(30) NOT NULL DEFAULT '', + `closedDate` datetime DEFAULT NULL, + `closedReason` varchar(30) NOT NULL DEFAULT '', + `submitedBy` varchar(30) NOT NULL DEFAULT '', + `lastEditedBy` varchar(30) NOT NULL DEFAULT '', + `lastEditedDate` datetime DEFAULT NULL, + `activatedDate` datetime DEFAULT NULL, + `distributedBy` varchar(30) NOT NULL DEFAULT '', + `distributedDate` datetime DEFAULT NULL, + `feedback` mediumint(9) NOT NULL DEFAULT 0, + `keywords` varchar(255) NOT NULL DEFAULT '', + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_demandpool` ( + `id` int(8) NOT NULL AUTO_INCREMENT, + `name` varchar(255) NOT NULL DEFAULT '', + `desc` mediumtext DEFAULT NULL, + `status` char(30) NOT NULL DEFAULT '', + `products` varchar(255) NOT NULL DEFAULT '', + `createdBy` char(30) NOT NULL DEFAULT '', + `createdDate` date DEFAULT NULL, + `owner` text DEFAULT NULL, + `reviewer` text DEFAULT NULL, + `acl` char(30) DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_demandreview` ( + `demand` mediumint(9) NOT NULL DEFAULT 0, + `version` smallint(6) NOT NULL DEFAULT 0, + `reviewer` varchar(30) NOT NULL DEFAULT '', + `result` varchar(30) NOT NULL DEFAULT '', + `reviewDate` datetime DEFAULT NULL, + UNIQUE KEY `demand` (`demand`,`version`,`reviewer`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_demandspec` ( + `demand` mediumint(9) NOT NULL DEFAULT 0, + `version` smallint(6) NOT NULL DEFAULT 0, + `title` varchar(255) NOT NULL DEFAULT '', + `spec` mediumtext DEFAULT NULL, + `verify` mediumtext DEFAULT NULL, + `files` text DEFAULT NULL, + UNIQUE KEY `demand` (`demand`,`version`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_deploy` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `begin` datetime DEFAULT NULL, + `end` datetime DEFAULT NULL, + `estimate` datetime DEFAULT NULL, + `name` varchar(255) NOT NULL DEFAULT '', + `host` varchar(255) NOT NULL DEFAULT '', + `desc` mediumtext DEFAULT NULL, + `status` varchar(20) NOT NULL DEFAULT '', + `owner` char(30) NOT NULL DEFAULT '', + `members` text DEFAULT NULL, + `notify` text DEFAULT NULL, + `cases` text DEFAULT NULL, + `createdBy` char(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `result` varchar(20) NOT NULL DEFAULT '', + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_deployproduct` ( + `deploy` mediumint(8) unsigned NOT NULL DEFAULT 0, + `product` mediumint(8) unsigned NOT NULL DEFAULT 0, + `release` mediumint(8) unsigned NOT NULL DEFAULT 0, + UNIQUE KEY `deploy_product_release` (`deploy`,`product`,`release`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_deploystep` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `deploy` mediumint(8) unsigned NOT NULL DEFAULT 0, + `parent` mediumint(8) unsigned NOT NULL DEFAULT 0, + `title` varchar(255) NOT NULL DEFAULT '', + `stage` varchar(30) NOT NULL DEFAULT '', + `content` text DEFAULT NULL, + `status` varchar(30) NOT NULL DEFAULT '', + `assignedTo` char(30) NOT NULL DEFAULT '', + `assignedDate` datetime DEFAULT NULL, + `finishedBy` char(30) NOT NULL DEFAULT '', + `finishedDate` datetime DEFAULT NULL, + `createdBy` char(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_dept` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `name` char(60) NOT NULL DEFAULT '', + `parent` mediumint(8) unsigned NOT NULL DEFAULT 0, + `path` char(255) NOT NULL DEFAULT '', + `grade` tinyint(3) unsigned NOT NULL DEFAULT 0, + `order` smallint(6) unsigned NOT NULL DEFAULT 0, + `position` char(30) NOT NULL DEFAULT '', + `function` char(255) NOT NULL DEFAULT '', + `manager` char(30) NOT NULL DEFAULT '', + PRIMARY KEY (`id`), + KEY `parent` (`parent`), + KEY `path` (`path`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_design` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `project` varchar(255) NOT NULL DEFAULT '', + `product` varchar(255) NOT NULL DEFAULT '', + `commit` text DEFAULT NULL, + `commitedBy` varchar(30) NOT NULL DEFAULT '', + `execution` mediumint(8) unsigned NOT NULL DEFAULT 0, + `name` varchar(255) NOT NULL DEFAULT '', + `status` varchar(30) NOT NULL DEFAULT '', + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `assignedTo` varchar(30) NOT NULL DEFAULT '', + `assignedBy` varchar(30) NOT NULL DEFAULT '', + `assignedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + `story` char(30) NOT NULL DEFAULT '', + `storyVersion` smallint(6) unsigned NOT NULL DEFAULT 1, + `desc` mediumtext DEFAULT NULL, + `version` smallint(6) NOT NULL DEFAULT 0, + `type` char(30) NOT NULL DEFAULT '', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_designspec` ( + `design` mediumint(8) NOT NULL DEFAULT 0, + `version` smallint(6) NOT NULL DEFAULT 0, + `name` varchar(255) NOT NULL DEFAULT '', + `desc` mediumtext DEFAULT NULL, + `files` varchar(255) NOT NULL DEFAULT '', + UNIQUE KEY `design` (`design`,`version`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_dimension` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `name` varchar(90) NOT NULL DEFAULT '', + `code` varchar(45) NOT NULL DEFAULT '', + `desc` text DEFAULT NULL, + `acl` enum('open','private') NOT NULL DEFAULT 'open', + `whitelist` text DEFAULT NULL, + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`), + KEY `code` (`code`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_doc` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `vision` varchar(10) NOT NULL DEFAULT 'rnd', + `project` mediumint(8) unsigned NOT NULL DEFAULT 0, + `product` mediumint(8) unsigned NOT NULL DEFAULT 0, + `execution` mediumint(8) unsigned NOT NULL DEFAULT 0, + `lib` varchar(30) NOT NULL DEFAULT '', + `template` varchar(30) NOT NULL DEFAULT '', + `templateType` varchar(30) NOT NULL DEFAULT '', + `chapterType` varchar(30) NOT NULL DEFAULT '', + `module` varchar(30) NOT NULL DEFAULT '', + `title` varchar(255) NOT NULL DEFAULT '', + `keywords` varchar(255) NOT NULL DEFAULT '', + `type` varchar(30) NOT NULL DEFAULT '', + `status` varchar(30) NOT NULL DEFAULT 'normal', + `parent` smallint(6) unsigned NOT NULL DEFAULT 0, + `path` char(255) NOT NULL DEFAULT '', + `grade` tinyint(3) unsigned NOT NULL DEFAULT 0, + `order` smallint(6) unsigned NOT NULL DEFAULT 0, + `views` smallint(6) unsigned NOT NULL DEFAULT 0, + `assetLib` mediumint(8) unsigned NOT NULL DEFAULT 0, + `assetLibType` varchar(30) NOT NULL DEFAULT '', + `from` mediumint(8) unsigned NOT NULL DEFAULT 0, + `fromVersion` smallint(6) NOT NULL DEFAULT 1, + `draft` longtext DEFAULT NULL, + `collects` smallint(6) unsigned NOT NULL DEFAULT 0, + `addedBy` varchar(30) NOT NULL DEFAULT '', + `addedDate` datetime DEFAULT NULL, + `assignedTo` varchar(30) NOT NULL DEFAULT '', + `assignedDate` datetime DEFAULT NULL, + `approvedDate` date DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `editingDate` text DEFAULT NULL, + `editedList` text DEFAULT NULL, + `mailto` text DEFAULT NULL, + `acl` varchar(10) NOT NULL DEFAULT 'open', + `groups` varchar(255) NOT NULL DEFAULT '', + `users` text DEFAULT NULL, + `version` smallint(6) unsigned NOT NULL DEFAULT 1, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`), + KEY `product` (`product`), + KEY `execution` (`execution`), + KEY `lib` (`lib`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_docaction` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `doc` mediumint(8) unsigned NOT NULL DEFAULT 0, + `action` varchar(80) NOT NULL DEFAULT '', + `actor` char(30) NOT NULL DEFAULT '', + `date` datetime DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `doc` (`doc`), + KEY `actor` (`actor`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_docblock` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `doc` mediumint(8) unsigned NOT NULL DEFAULT 0, + `type` varchar(50) NOT NULL DEFAULT '', + `settings` text DEFAULT NULL, + `content` mediumtext DEFAULT NULL, + `extra` varchar(255) DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `idx_doc` (`doc`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_doccontent` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `doc` mediumint(8) unsigned NOT NULL DEFAULT 0, + `title` varchar(255) NOT NULL DEFAULT '', + `digest` varchar(255) NOT NULL DEFAULT '', + `content` longtext DEFAULT NULL, + `rawContent` longtext DEFAULT NULL, + `files` text DEFAULT NULL, + `type` varchar(10) NOT NULL DEFAULT '', + `addedBy` varchar(30) NOT NULL DEFAULT '', + `addedDate` datetime DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `version` smallint(6) unsigned NOT NULL DEFAULT 0, + `fromVersion` smallint(6) unsigned NOT NULL DEFAULT 0, + PRIMARY KEY (`id`), + UNIQUE KEY `doc_version` (`doc`,`version`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_doclib` ( + `id` smallint(6) unsigned NOT NULL AUTO_INCREMENT, + `type` varchar(30) NOT NULL DEFAULT '', + `vision` varchar(10) NOT NULL DEFAULT 'rnd', + `parent` mediumint(8) unsigned NOT NULL DEFAULT 0, + `product` mediumint(8) unsigned NOT NULL DEFAULT 0, + `project` mediumint(8) unsigned NOT NULL DEFAULT 0, + `execution` mediumint(8) unsigned NOT NULL DEFAULT 0, + `name` varchar(60) NOT NULL DEFAULT '', + `baseUrl` varchar(255) NOT NULL DEFAULT '', + `acl` varchar(10) NOT NULL DEFAULT 'open', + `groups` varchar(255) NOT NULL DEFAULT '', + `users` text DEFAULT NULL, + `main` enum('0','1') NOT NULL DEFAULT '0', + `collector` text DEFAULT NULL, + `desc` mediumtext DEFAULT NULL, + `order` tinyint(5) unsigned NOT NULL DEFAULT 0, + `addedBy` varchar(30) NOT NULL DEFAULT '', + `addedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + `orderBy` varchar(30) NOT NULL DEFAULT 'id_asc', + PRIMARY KEY (`id`), + KEY `product` (`product`), + KEY `execution` (`execution`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_duckdbqueue` ( + `object` varchar(255) NOT NULL DEFAULT '', + `updatedTime` datetime DEFAULT NULL, + `syncTime` datetime DEFAULT NULL, + UNIQUE KEY `object` (`object`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_durationestimation` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `project` mediumint(8) unsigned NOT NULL DEFAULT 0, + `stage` mediumint(9) NOT NULL DEFAULT 0, + `workload` varchar(255) NOT NULL DEFAULT '', + `worktimeRate` varchar(255) NOT NULL DEFAULT '', + `people` varchar(255) NOT NULL DEFAULT '', + `startDate` date DEFAULT NULL, + `endDate` date DEFAULT NULL, + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_effort` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `objectType` varchar(30) NOT NULL DEFAULT '', + `objectID` mediumint(8) unsigned NOT NULL DEFAULT 0, + `product` text DEFAULT NULL, + `project` mediumint(8) unsigned NOT NULL DEFAULT 0, + `execution` mediumint(8) unsigned NOT NULL DEFAULT 0, + `account` varchar(30) NOT NULL DEFAULT '', + `work` text DEFAULT NULL, + `vision` varchar(10) NOT NULL DEFAULT 'rnd', + `date` date DEFAULT NULL, + `left` float NOT NULL DEFAULT 0, + `consumed` float NOT NULL DEFAULT 0, + `begin` smallint(4) unsigned zerofill NOT NULL DEFAULT 0000, + `end` smallint(4) unsigned zerofill NOT NULL DEFAULT 0000, + `extra` text DEFAULT NULL, + `order` tinyint(3) unsigned NOT NULL DEFAULT 0, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`), + KEY `execution` (`execution`), + KEY `objectID` (`objectID`), + KEY `date` (`date`), + KEY `account` (`account`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_entry` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `name` varchar(50) NOT NULL DEFAULT '', + `account` varchar(30) NOT NULL DEFAULT '', + `code` varchar(20) NOT NULL DEFAULT '', + `key` varchar(32) NOT NULL DEFAULT '', + `freePasswd` enum('0','1') NOT NULL DEFAULT '0', + `ip` varchar(100) NOT NULL DEFAULT '', + `desc` mediumtext DEFAULT NULL, + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `calledTime` int(11) unsigned NOT NULL DEFAULT 0, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_expect` ( + `id` mediumint(8) NOT NULL AUTO_INCREMENT, + `userID` mediumint(8) NOT NULL DEFAULT 0, + `project` mediumint(8) NOT NULL DEFAULT 0, + `expect` text DEFAULT NULL, + `progress` text DEFAULT NULL, + `createdBy` char(30) NOT NULL DEFAULT '', + `createdDate` date DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_extension` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `name` varchar(150) NOT NULL DEFAULT '', + `code` varchar(30) NOT NULL DEFAULT '', + `version` varchar(50) NOT NULL DEFAULT '', + `author` varchar(100) NOT NULL DEFAULT '', + `desc` mediumtext DEFAULT NULL, + `license` text DEFAULT NULL, + `type` varchar(20) NOT NULL DEFAULT 'extension', + `site` varchar(150) NOT NULL DEFAULT '', + `zentaoCompatible` text DEFAULT NULL, + `installedTime` datetime DEFAULT NULL, + `depends` varchar(100) NOT NULL DEFAULT '', + `dirs` mediumtext DEFAULT NULL, + `files` mediumtext DEFAULT NULL, + `status` varchar(20) NOT NULL DEFAULT '', + PRIMARY KEY (`id`), + UNIQUE KEY `code` (`code`), + KEY `name` (`name`), + KEY `installedTime` (`installedTime`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_extuser` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `code` varchar(255) NOT NULL, + `account` char(30) NOT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_faq` ( + `id` mediumint(9) NOT NULL AUTO_INCREMENT, + `module` mediumint(9) NOT NULL DEFAULT 0, + `product` mediumint(9) NOT NULL DEFAULT 0, + `question` varchar(255) NOT NULL DEFAULT '', + `answer` text DEFAULT NULL, + `addedtime` datetime DEFAULT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_feedback` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `product` mediumint(8) unsigned NOT NULL DEFAULT 0, + `module` mediumint(8) unsigned NOT NULL DEFAULT 0, + `title` varchar(255) NOT NULL DEFAULT '', + `type` char(30) NOT NULL DEFAULT '', + `solution` char(30) NOT NULL DEFAULT '', + `desc` text DEFAULT NULL, + `pri` tinyint(3) unsigned NOT NULL DEFAULT 2, + `status` varchar(30) NOT NULL DEFAULT '', + `subStatus` varchar(30) NOT NULL DEFAULT '', + `public` enum('0','1') NOT NULL DEFAULT '0', + `notify` enum('0','1') NOT NULL DEFAULT '0', + `notifyEmail` varchar(100) NOT NULL DEFAULT '', + `source` varchar(255) NOT NULL DEFAULT '', + `likes` text DEFAULT NULL, + `result` mediumint(8) unsigned NOT NULL DEFAULT 0, + `faq` mediumint(8) unsigned NOT NULL DEFAULT 0, + `openedBy` char(30) NOT NULL DEFAULT '', + `openedDate` datetime DEFAULT NULL, + `reviewedBy` varchar(255) NOT NULL DEFAULT '', + `reviewedDate` datetime DEFAULT NULL, + `processedBy` char(30) NOT NULL DEFAULT '', + `processedDate` datetime DEFAULT NULL, + `closedBy` char(30) NOT NULL DEFAULT '', + `closedDate` datetime DEFAULT NULL, + `closedReason` varchar(30) NOT NULL DEFAULT '', + `editedBy` char(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `assignedTo` varchar(255) NOT NULL DEFAULT '', + `assignedDate` datetime DEFAULT NULL, + `activatedBy` varchar(30) NOT NULL DEFAULT '', + `activatedDate` datetime DEFAULT NULL, + `feedbackBy` varchar(100) NOT NULL DEFAULT '', + `repeatFeedback` mediumint(8) NOT NULL DEFAULT 0, + `mailto` varchar(255) NOT NULL DEFAULT '', + `keywords` varchar(255) NOT NULL DEFAULT '', + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_feedbackview` ( + `account` char(30) NOT NULL DEFAULT '', + `product` mediumint(8) unsigned NOT NULL DEFAULT 0, + UNIQUE KEY `account_product` (`account`,`product`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_file` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `pathname` char(100) NOT NULL DEFAULT '', + `title` varchar(255) NOT NULL DEFAULT '', + `extension` char(30) NOT NULL DEFAULT '', + `size` int(11) unsigned NOT NULL DEFAULT 0, + `objectType` char(30) NOT NULL DEFAULT '', + `objectID` mediumint(9) NOT NULL DEFAULT 0, + `gid` char(48) NOT NULL DEFAULT '', + `addedBy` char(30) NOT NULL DEFAULT '', + `addedDate` datetime DEFAULT NULL, + `downloads` mediumint(8) unsigned NOT NULL DEFAULT 0, + `extra` varchar(255) NOT NULL DEFAULT '', + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`), + KEY `objectType` (`objectType`), + KEY `objectID` (`objectID`), + KEY `gid` (`gid`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_gapanalysis` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `project` mediumint(8) unsigned NOT NULL DEFAULT 0, + `account` varchar(30) NOT NULL DEFAULT '', + `role` varchar(20) NOT NULL DEFAULT '', + `analysis` mediumtext DEFAULT NULL, + `needTrain` enum('no','yes') NOT NULL DEFAULT 'no', + `createdBy` char(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`), + UNIQUE KEY `project_account` (`project`,`account`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_group` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `project` mediumint(8) unsigned NOT NULL DEFAULT 0, + `vision` varchar(10) NOT NULL DEFAULT 'rnd', + `name` char(30) NOT NULL DEFAULT '', + `role` char(30) NOT NULL DEFAULT '', + `desc` char(255) NOT NULL DEFAULT '', + `acl` text DEFAULT NULL, + `developer` enum('0','1') NOT NULL DEFAULT '1', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_grouppriv` ( + `group` mediumint(8) unsigned NOT NULL DEFAULT 0, + `module` char(30) NOT NULL DEFAULT '', + `method` char(30) NOT NULL DEFAULT '', + UNIQUE KEY `group` (`group`,`module`,`method`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_history` ( + `id` int(11) unsigned NOT NULL AUTO_INCREMENT, + `action` mediumint(8) unsigned NOT NULL DEFAULT 0, + `field` varchar(30) NOT NULL DEFAULT '', + `old` text DEFAULT NULL, + `oldValue` text DEFAULT NULL, + `new` text DEFAULT NULL, + `newValue` text DEFAULT NULL, + `diff` mediumtext DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `action` (`action`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_holiday` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `name` varchar(30) NOT NULL DEFAULT '', + `type` enum('holiday','working') NOT NULL DEFAULT 'holiday', + `desc` text DEFAULT NULL, + `year` char(4) NOT NULL DEFAULT '', + `begin` date DEFAULT NULL, + `end` date DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `year` (`year`), + KEY `name` (`name`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_host` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `name` varchar(255) NOT NULL DEFAULT '', + `type` varchar(30) NOT NULL DEFAULT 'normal', + `hostType` varchar(30) NOT NULL DEFAULT '', + `mac` varchar(128) NOT NULL DEFAULT '', + `memory` varchar(30) NOT NULL DEFAULT '', + `diskSize` varchar(30) NOT NULL DEFAULT '', + `status` varchar(50) NOT NULL DEFAULT '', + `secret` varchar(50) NOT NULL DEFAULT '', + `desc` text DEFAULT NULL, + `tokenSN` varchar(50) NOT NULL DEFAULT '', + `tokenTime` datetime DEFAULT NULL, + `oldTokenSN` varchar(50) NOT NULL DEFAULT '', + `vsoft` varchar(30) NOT NULL DEFAULT '', + `heartbeat` datetime DEFAULT NULL, + `zap` varchar(10) NOT NULL DEFAULT '', + `vnc` int(11) NOT NULL DEFAULT 0, + `ztf` int(11) NOT NULL DEFAULT 0, + `zd` int(11) NOT NULL DEFAULT 0, + `ssh` int(11) NOT NULL DEFAULT 0, + `parent` int(11) unsigned NOT NULL DEFAULT 0, + `image` int(11) unsigned NOT NULL DEFAULT 0, + `admin` smallint(5) unsigned NOT NULL DEFAULT 0, + `serverRoom` mediumint(8) unsigned NOT NULL DEFAULT 0, + `cpuNumber` varchar(16) NOT NULL DEFAULT '', + `cpuCores` varchar(30) NOT NULL DEFAULT '', + `intranet` varchar(128) NOT NULL DEFAULT '', + `extranet` varchar(128) NOT NULL DEFAULT '', + `osName` varchar(64) NOT NULL DEFAULT '', + `osVersion` varchar(64) NOT NULL DEFAULT '', + `group` varchar(128) NOT NULL DEFAULT '', + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_image` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `host` int(11) unsigned NOT NULL DEFAULT 0, + `name` varchar(64) NOT NULL DEFAULT '', + `localName` varchar(64) NOT NULL DEFAULT '', + `address` varchar(64) NOT NULL DEFAULT '', + `path` varchar(64) NOT NULL DEFAULT '', + `status` varchar(20) NOT NULL DEFAULT '', + `osName` varchar(32) NOT NULL DEFAULT '', + `from` varchar(10) NOT NULL DEFAULT 'zentao', + `memory` float unsigned NOT NULL DEFAULT 0, + `disk` float unsigned NOT NULL DEFAULT 0, + `fileSize` float unsigned NOT NULL DEFAULT 0, + `md5` varchar(64) NOT NULL DEFAULT '', + `desc` text DEFAULT NULL, + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `restoreDate` datetime DEFAULT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_instance` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `space` mediumint(8) unsigned NOT NULL DEFAULT 0, + `solution` mediumint(8) unsigned NOT NULL DEFAULT 0, + `name` char(50) NOT NULL DEFAULT '', + `appID` mediumint(8) unsigned NOT NULL DEFAULT 0, + `appName` char(50) NOT NULL DEFAULT '', + `appVersion` char(20) NOT NULL DEFAULT '', + `chart` char(50) NOT NULL DEFAULT '', + `logo` varchar(255) NOT NULL DEFAULT '', + `version` char(50) NOT NULL DEFAULT '', + `desc` text DEFAULT NULL, + `introduction` text DEFAULT NULL, + `source` char(20) NOT NULL DEFAULT '', + `channel` char(20) NOT NULL DEFAULT '', + `k8name` char(64) NOT NULL DEFAULT '', + `status` char(20) NOT NULL DEFAULT '', + `pinned` enum('0','1') NOT NULL DEFAULT '0', + `domain` char(255) NOT NULL DEFAULT '', + `smtpSnippetName` char(30) NOT NULL DEFAULT '', + `ldapSnippetName` char(30) NOT NULL DEFAULT '', + `ldapSettings` text DEFAULT NULL, + `dbSettings` text DEFAULT NULL, + `autoBackup` tinyint(1) NOT NULL DEFAULT 0, + `backupKeepDays` int(10) unsigned NOT NULL DEFAULT 1, + `autoRestore` tinyint(1) NOT NULL DEFAULT 0, + `env` text DEFAULT NULL, + `createdBy` char(30) NOT NULL DEFAULT '', + `createdAt` datetime DEFAULT NULL, + `deleted` tinyint(1) NOT NULL DEFAULT 0, + PRIMARY KEY (`id`), + KEY `space` (`space`), + KEY `k8name` (`k8name`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_intervention` ( + `id` mediumint(8) NOT NULL AUTO_INCREMENT, + `project` mediumint(8) unsigned NOT NULL DEFAULT 0, + `activity` mediumint(8) NOT NULL DEFAULT 0, + `status` char(30) NOT NULL DEFAULT '', + `partake` text DEFAULT NULL, + `begin` date DEFAULT NULL, + `realBegin` date DEFAULT NULL, + `situation` varchar(255) NOT NULL DEFAULT '', + `createdBy` char(30) NOT NULL DEFAULT '', + `createdDate` date DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`), + UNIQUE KEY `project` (`project`,`activity`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_issue` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `resolvedBy` varchar(30) NOT NULL DEFAULT '', + `project` varchar(255) NOT NULL DEFAULT '', + `execution` mediumint(8) unsigned NOT NULL DEFAULT 0, + `title` varchar(255) NOT NULL DEFAULT '', + `desc` mediumtext DEFAULT NULL, + `pri` char(30) NOT NULL DEFAULT '', + `severity` char(30) NOT NULL DEFAULT '', + `type` char(30) NOT NULL DEFAULT '', + `activity` varchar(255) NOT NULL DEFAULT '', + `deadline` date DEFAULT NULL, + `resolution` char(30) NOT NULL DEFAULT '', + `resolutionComment` text DEFAULT NULL, + `objectID` varchar(255) NOT NULL DEFAULT '', + `resolvedDate` date DEFAULT NULL, + `status` varchar(30) NOT NULL DEFAULT '', + `owner` varchar(255) NOT NULL DEFAULT '', + `lib` mediumint(8) unsigned NOT NULL DEFAULT 0, + `from` mediumint(8) unsigned NOT NULL DEFAULT 0, + `version` smallint(6) NOT NULL DEFAULT 1, + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `activateBy` varchar(30) NOT NULL DEFAULT '', + `activateDate` date DEFAULT NULL, + `closedBy` varchar(30) NOT NULL DEFAULT '', + `closedDate` date DEFAULT NULL, + `assignedTo` varchar(30) NOT NULL DEFAULT '', + `assignedBy` varchar(30) NOT NULL DEFAULT '', + `assignedDate` datetime DEFAULT NULL, + `approvedDate` date DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_job` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `name` varchar(50) NOT NULL DEFAULT '', + `repo` mediumint(8) unsigned NOT NULL DEFAULT 0, + `product` mediumint(8) unsigned NOT NULL DEFAULT 0, + `frame` varchar(20) NOT NULL DEFAULT '', + `engine` varchar(20) NOT NULL DEFAULT '', + `autoRun` enum('0','1') NOT NULL DEFAULT '1', + `server` mediumint(8) unsigned NOT NULL DEFAULT 0, + `pipeline` varchar(500) NOT NULL DEFAULT '', + `triggerType` varchar(255) NOT NULL DEFAULT '', + `sonarqubeServer` mediumint(8) unsigned NOT NULL DEFAULT 0, + `projectKey` varchar(255) NOT NULL DEFAULT '', + `svnDir` varchar(255) NOT NULL DEFAULT '', + `atDay` varchar(255) NOT NULL DEFAULT '', + `atTime` varchar(10) NOT NULL DEFAULT '', + `customParam` text DEFAULT NULL, + `comment` varchar(255) NOT NULL DEFAULT '', + `triggerActions` varchar(255) NOT NULL DEFAULT '', + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `lastExec` datetime DEFAULT NULL, + `lastStatus` varchar(255) NOT NULL DEFAULT '', + `lastTag` varchar(255) NOT NULL DEFAULT '', + `lastSyncDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`), + KEY `idx_repo_deleted` (`repo`,`deleted`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_kanban` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `space` mediumint(8) unsigned NOT NULL DEFAULT 0, + `name` varchar(255) NOT NULL DEFAULT '', + `owner` varchar(30) NOT NULL DEFAULT '', + `team` text DEFAULT NULL, + `desc` mediumtext DEFAULT NULL, + `acl` char(30) NOT NULL DEFAULT 'open', + `whitelist` text DEFAULT NULL, + `archived` enum('0','1') NOT NULL DEFAULT '1', + `performable` enum('0','1') NOT NULL DEFAULT '0', + `status` enum('active','closed') NOT NULL DEFAULT 'active', + `order` mediumint(8) NOT NULL DEFAULT 0, + `displayCards` smallint(6) NOT NULL DEFAULT 0, + `showWIP` enum('0','1') NOT NULL DEFAULT '1', + `fluidBoard` enum('0','1') NOT NULL DEFAULT '0', + `colWidth` smallint(4) NOT NULL DEFAULT 264, + `minColWidth` smallint(4) NOT NULL DEFAULT 200, + `maxColWidth` smallint(4) NOT NULL DEFAULT 384, + `object` varchar(255) NOT NULL DEFAULT '', + `alignment` varchar(10) NOT NULL DEFAULT 'center', + `createdBy` char(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `lastEditedBy` char(30) NOT NULL DEFAULT '', + `lastEditedDate` datetime DEFAULT NULL, + `closedBy` char(30) NOT NULL DEFAULT '', + `closedDate` datetime DEFAULT NULL, + `activatedBy` char(30) NOT NULL DEFAULT '', + `activatedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_kanbancard` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `kanban` mediumint(8) unsigned NOT NULL DEFAULT 0, + `region` mediumint(8) unsigned NOT NULL DEFAULT 0, + `group` mediumint(8) unsigned NOT NULL DEFAULT 0, + `fromID` mediumint(8) unsigned NOT NULL DEFAULT 0, + `fromType` varchar(30) NOT NULL DEFAULT '', + `name` varchar(255) NOT NULL DEFAULT '', + `status` varchar(30) NOT NULL DEFAULT 'doing', + `pri` mediumint(8) unsigned NOT NULL DEFAULT 0, + `assignedTo` text DEFAULT NULL, + `desc` mediumtext DEFAULT NULL, + `begin` date DEFAULT NULL, + `end` date DEFAULT NULL, + `estimate` float unsigned NOT NULL DEFAULT 0, + `progress` float unsigned NOT NULL DEFAULT 0, + `color` char(7) NOT NULL DEFAULT '', + `acl` char(30) NOT NULL DEFAULT 'open', + `whitelist` text DEFAULT NULL, + `order` mediumint(8) NOT NULL DEFAULT 0, + `archived` enum('0','1') NOT NULL DEFAULT '0', + `createdBy` char(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `lastEditedBy` char(30) NOT NULL DEFAULT '', + `lastEditedDate` datetime DEFAULT NULL, + `archivedBy` char(30) NOT NULL DEFAULT '', + `archivedDate` datetime DEFAULT NULL, + `assignedBy` char(30) NOT NULL DEFAULT '', + `assignedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_kanbancell` ( + `id` int(8) NOT NULL AUTO_INCREMENT, + `kanban` mediumint(8) NOT NULL DEFAULT 0, + `lane` mediumint(8) NOT NULL DEFAULT 0, + `column` mediumint(8) NOT NULL DEFAULT 0, + `type` char(30) NOT NULL DEFAULT '', + `cards` mediumtext DEFAULT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `card_group` (`kanban`,`type`,`lane`,`column`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_kanbancolumn` ( + `id` int(8) NOT NULL AUTO_INCREMENT, + `parent` mediumint(8) NOT NULL DEFAULT 0, + `type` char(30) NOT NULL DEFAULT '', + `region` mediumint(8) unsigned NOT NULL DEFAULT 0, + `group` mediumint(8) NOT NULL DEFAULT 0, + `name` varchar(255) NOT NULL DEFAULT '', + `color` char(30) NOT NULL DEFAULT '', + `limit` smallint(6) NOT NULL DEFAULT -1, + `order` mediumint(8) NOT NULL DEFAULT 0, + `archived` enum('0','1') NOT NULL DEFAULT '0', + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_kanbangroup` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `kanban` mediumint(8) unsigned NOT NULL DEFAULT 0, + `region` mediumint(8) unsigned NOT NULL DEFAULT 0, + `order` smallint(6) NOT NULL DEFAULT 0, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_kanbanlane` ( + `id` int(8) NOT NULL AUTO_INCREMENT, + `execution` mediumint(8) NOT NULL DEFAULT 0, + `type` char(30) NOT NULL DEFAULT '', + `region` mediumint(8) unsigned NOT NULL DEFAULT 0, + `group` mediumint(8) unsigned NOT NULL DEFAULT 0, + `groupby` char(30) NOT NULL DEFAULT '', + `extra` char(30) NOT NULL DEFAULT '', + `name` varchar(255) NOT NULL DEFAULT '', + `color` char(30) NOT NULL DEFAULT '', + `order` smallint(6) NOT NULL DEFAULT 0, + `lastEditedTime` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_kanbanregion` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `space` mediumint(8) unsigned NOT NULL DEFAULT 0, + `kanban` mediumint(8) unsigned NOT NULL DEFAULT 0, + `name` varchar(255) NOT NULL DEFAULT '', + `order` mediumint(8) NOT NULL DEFAULT 0, + `createdBy` char(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `lastEditedBy` char(30) NOT NULL DEFAULT '', + `lastEditedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_kanbanspace` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `name` varchar(255) NOT NULL DEFAULT '', + `type` varchar(50) NOT NULL DEFAULT '', + `owner` varchar(30) NOT NULL DEFAULT '', + `team` text DEFAULT NULL, + `desc` mediumtext DEFAULT NULL, + `acl` char(30) NOT NULL DEFAULT 'open', + `whitelist` text DEFAULT NULL, + `status` enum('active','closed') NOT NULL DEFAULT 'active', + `order` mediumint(8) NOT NULL DEFAULT 0, + `createdBy` char(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `lastEditedBy` char(30) NOT NULL DEFAULT '', + `lastEditedDate` datetime DEFAULT NULL, + `closedBy` char(30) NOT NULL DEFAULT '', + `closedDate` datetime DEFAULT NULL, + `activatedBy` char(30) NOT NULL DEFAULT '', + `activatedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_lang` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `lang` varchar(30) NOT NULL DEFAULT '', + `module` varchar(30) NOT NULL DEFAULT '', + `section` varchar(50) NOT NULL DEFAULT '', + `key` varchar(60) NOT NULL DEFAULT '', + `value` text DEFAULT NULL, + `system` enum('0','1') NOT NULL DEFAULT '1', + `vision` varchar(10) NOT NULL DEFAULT 'rnd', + PRIMARY KEY (`id`), + UNIQUE KEY `lang` (`lang`,`module`,`section`,`key`,`vision`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_leave` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `year` char(4) NOT NULL DEFAULT '', + `begin` date DEFAULT NULL, + `end` date DEFAULT NULL, + `start` time DEFAULT NULL, + `finish` time DEFAULT NULL, + `hours` float(4,1) unsigned NOT NULL DEFAULT 0.0, + `backDate` datetime DEFAULT NULL, + `type` varchar(30) NOT NULL DEFAULT '', + `desc` text DEFAULT NULL, + `status` varchar(30) NOT NULL DEFAULT '', + `createdBy` char(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `reviewedBy` char(30) NOT NULL DEFAULT '', + `reviewedDate` datetime DEFAULT NULL, + `level` tinyint(3) NOT NULL DEFAULT 0, + `assignedTo` varchar(30) NOT NULL DEFAULT '', + `reviewers` text DEFAULT NULL, + `backReviewers` text DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `year` (`year`), + KEY `type` (`type`), + KEY `status` (`status`), + KEY `createdBy` (`createdBy`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_lieu` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `year` char(4) NOT NULL DEFAULT '', + `begin` date DEFAULT NULL, + `end` date DEFAULT NULL, + `start` time DEFAULT NULL, + `finish` time DEFAULT NULL, + `hours` float(4,1) unsigned NOT NULL DEFAULT 0.0, + `overtime` char(255) NOT NULL DEFAULT '', + `trip` char(255) NOT NULL DEFAULT '', + `desc` text DEFAULT NULL, + `status` varchar(30) NOT NULL DEFAULT '', + `createdBy` char(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `reviewedBy` char(30) NOT NULL DEFAULT '', + `reviewedDate` datetime DEFAULT NULL, + `level` tinyint(3) NOT NULL DEFAULT 0, + `assignedTo` varchar(30) NOT NULL DEFAULT '', + `reviewers` text DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `year` (`year`), + KEY `status` (`status`), + KEY `createdBy` (`createdBy`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_log` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `objectType` varchar(30) NOT NULL DEFAULT '', + `objectID` mediumint(8) unsigned NOT NULL DEFAULT 0, + `action` mediumint(8) unsigned NOT NULL DEFAULT 0, + `date` datetime DEFAULT NULL, + `url` varchar(255) NOT NULL DEFAULT '', + `contentType` varchar(30) NOT NULL DEFAULT '', + `data` text DEFAULT NULL, + `result` text DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `objectType` (`objectType`), + KEY `obejctID` (`objectID`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_mark` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `objectType` varchar(50) NOT NULL DEFAULT '', + `objectID` mediumint(8) unsigned NOT NULL DEFAULT 0, + `version` varchar(50) NOT NULL DEFAULT '', + `account` char(30) NOT NULL DEFAULT '', + `date` datetime DEFAULT NULL, + `mark` varchar(50) NOT NULL DEFAULT '', + `extra` varchar(255) NOT NULL DEFAULT '', + PRIMARY KEY (`id`), + KEY `idx_object` (`objectType`,`objectID`), + KEY `idx_account` (`account`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_market` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `name` varchar(255) NOT NULL DEFAULT '', + `industry` char(255) NOT NULL DEFAULT '', + `scale` decimal(10,2) NOT NULL DEFAULT 0.00, + `maturity` char(255) NOT NULL DEFAULT '', + `speed` varchar(255) NOT NULL DEFAULT '', + `competition` char(255) NOT NULL DEFAULT '', + `strategy` varchar(255) NOT NULL DEFAULT '', + `ppm` varchar(20) NOT NULL DEFAULT '', + `desc` mediumtext DEFAULT NULL, + `openedBy` varchar(30) NOT NULL DEFAULT '', + `openedDate` datetime DEFAULT NULL, + `lastEditedBy` varchar(30) NOT NULL DEFAULT '', + `lastEditedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_marketreport` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `name` varchar(255) NOT NULL DEFAULT '', + `market` mediumint(8) NOT NULL DEFAULT 0, + `research` mediumint(8) NOT NULL DEFAULT 0, + `maturity` varchar(30) NOT NULL DEFAULT '', + `owner` varchar(30) NOT NULL DEFAULT '', + `participants` char(255) NOT NULL DEFAULT '', + `source` varchar(30) NOT NULL DEFAULT '', + `desc` mediumtext DEFAULT NULL, + `status` varchar(20) NOT NULL DEFAULT '', + `openedBy` varchar(30) NOT NULL DEFAULT '', + `openedDate` datetime DEFAULT NULL, + `lastEditedBy` varchar(30) NOT NULL DEFAULT '', + `lastEditedDate` datetime DEFAULT NULL, + `publishedBy` varchar(30) NOT NULL DEFAULT '', + `publishedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_measqueue` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `type` varchar(30) NOT NULL DEFAULT '', + `mid` mediumint(8) unsigned NOT NULL DEFAULT 0, + `status` varchar(100) NOT NULL DEFAULT '', + `logs` text DEFAULT NULL, + `execTime` varchar(10) NOT NULL DEFAULT '', + `params` text DEFAULT NULL, + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `updateDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`), + KEY `status_deleted` (`status`,`deleted`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_measrecords` ( + `id` mediumint(8) NOT NULL AUTO_INCREMENT, + `type` varchar(30) NOT NULL DEFAULT '', + `mid` mediumint(8) NOT NULL DEFAULT 0, + `measCode` char(50) NOT NULL DEFAULT '', + `project` mediumint(8) unsigned NOT NULL DEFAULT 0, + `product` mediumint(8) unsigned NOT NULL DEFAULT 0, + `execution` mediumint(8) unsigned NOT NULL DEFAULT 0, + `params` text DEFAULT NULL, + `year` char(4) NOT NULL DEFAULT '', + `month` char(6) NOT NULL DEFAULT '', + `week` char(8) NOT NULL DEFAULT '', + `day` char(8) NOT NULL DEFAULT '', + `value` varchar(255) NOT NULL DEFAULT '', + `date` date DEFAULT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `time` (`year`,`month`,`day`,`week`), + KEY `product` (`product`), + KEY `project` (`project`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_meastemplate` ( + `id` mediumint(8) NOT NULL AUTO_INCREMENT, + `model` char(30) NOT NULL DEFAULT '', + `name` varchar(255) NOT NULL DEFAULT '', + `content` mediumtext DEFAULT NULL, + `createdBy` char(30) NOT NULL DEFAULT '', + `createdDate` date DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_meeting` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `project` mediumint(8) NOT NULL DEFAULT 0, + `execution` mediumint(8) NOT NULL DEFAULT 0, + `name` varchar(255) NOT NULL DEFAULT '', + `type` varchar(255) NOT NULL DEFAULT '', + `begin` time DEFAULT NULL, + `end` time DEFAULT NULL, + `dept` mediumint(8) NOT NULL DEFAULT 0, + `mode` varchar(255) NOT NULL DEFAULT '', + `host` varchar(30) NOT NULL DEFAULT '', + `participant` text DEFAULT NULL, + `date` date DEFAULT NULL, + `room` int(11) NOT NULL DEFAULT 0, + `minutes` text DEFAULT NULL, + `minutedBy` varchar(30) NOT NULL DEFAULT '', + `minutedDate` datetime DEFAULT NULL, + `objectType` varchar(30) NOT NULL DEFAULT '', + `objectID` mediumint(8) NOT NULL DEFAULT 0, + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_meetingroom` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `name` varchar(255) NOT NULL DEFAULT '', + `position` varchar(30) NOT NULL DEFAULT '', + `seats` int(11) NOT NULL DEFAULT 0, + `equipment` varchar(255) NOT NULL DEFAULT '', + `openTime` varchar(255) NOT NULL DEFAULT '', + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_metric` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `purpose` varchar(50) NOT NULL DEFAULT '', + `scope` char(30) NOT NULL DEFAULT '', + `object` char(30) NOT NULL DEFAULT '', + `stage` enum('wait','released') DEFAULT 'wait', + `type` enum('php','sql') DEFAULT 'php', + `name` varchar(90) NOT NULL DEFAULT '', + `alias` varchar(90) NOT NULL DEFAULT '', + `code` varchar(90) NOT NULL DEFAULT '', + `unit` varchar(10) NOT NULL DEFAULT '', + `dateType` varchar(50) NOT NULL DEFAULT '', + `collector` text DEFAULT NULL, + `desc` text DEFAULT NULL, + `definition` text DEFAULT NULL, + `when` varchar(30) NOT NULL DEFAULT '', + `event` varchar(30) NOT NULL DEFAULT '', + `cronCFG` varchar(30) NOT NULL DEFAULT '', + `time` varchar(30) NOT NULL DEFAULT '', + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `implementedBy` varchar(30) NOT NULL DEFAULT '', + `implementedDate` datetime DEFAULT NULL, + `delistedBy` varchar(30) NOT NULL DEFAULT '', + `delistedDate` datetime DEFAULT NULL, + `builtin` enum('0','1') NOT NULL DEFAULT '0', + `fromID` mediumint(8) unsigned NOT NULL DEFAULT 0, + `order` mediumint(8) unsigned NOT NULL DEFAULT 0, + `lastCalcRows` int(11) NOT NULL DEFAULT 0, + `lastCalcTime` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_metriclib` ( + `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `metricID` mediumint(9) NOT NULL DEFAULT 0, + `metricCode` varchar(100) NOT NULL DEFAULT '', + `system` char(30) NOT NULL DEFAULT '0', + `program` char(30) NOT NULL DEFAULT '', + `project` char(30) NOT NULL DEFAULT '', + `product` char(30) NOT NULL DEFAULT '', + `execution` char(30) NOT NULL DEFAULT '', + `code` char(30) NOT NULL DEFAULT '', + `pipeline` char(30) NOT NULL DEFAULT '', + `repo` char(30) NOT NULL DEFAULT '', + `user` text DEFAULT NULL, + `dept` char(30) NOT NULL DEFAULT '', + `year` char(4) NOT NULL DEFAULT '0', + `month` char(2) NOT NULL DEFAULT '0', + `week` char(2) NOT NULL DEFAULT '0', + `day` char(2) NOT NULL DEFAULT '0', + `value` varchar(100) NOT NULL DEFAULT '0', + `calcType` enum('cron','inference') NOT NULL DEFAULT 'cron', + `calculatedBy` varchar(30) NOT NULL DEFAULT '', + `date` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`), + KEY `metricID` (`metricID`), + KEY `metricCode` (`metricCode`), + KEY `date` (`date`), + KEY `deleted` (`deleted`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_module` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `root` mediumint(8) unsigned NOT NULL DEFAULT 0, + `branch` mediumint(8) unsigned NOT NULL DEFAULT 0, + `name` char(60) NOT NULL DEFAULT '', + `parent` mediumint(8) unsigned NOT NULL DEFAULT 0, + `path` char(255) NOT NULL DEFAULT '', + `grade` tinyint(3) unsigned NOT NULL DEFAULT 0, + `order` smallint(5) unsigned NOT NULL DEFAULT 0, + `type` char(30) NOT NULL DEFAULT '', + `from` mediumint(8) unsigned NOT NULL DEFAULT 0, + `owner` varchar(30) NOT NULL DEFAULT '', + `collector` text DEFAULT NULL, + `short` varchar(30) NOT NULL DEFAULT '', + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`), + KEY `root` (`root`), + KEY `type` (`type`), + KEY `path` (`path`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_mr` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `hostID` mediumint(8) unsigned NOT NULL DEFAULT 0, + `sourceProject` varchar(50) NOT NULL DEFAULT '', + `sourceBranch` varchar(100) NOT NULL DEFAULT '', + `targetProject` varchar(50) NOT NULL DEFAULT '', + `targetBranch` varchar(100) NOT NULL DEFAULT '', + `mriid` int(10) unsigned NOT NULL DEFAULT 0, + `title` varchar(255) NOT NULL DEFAULT '', + `description` text DEFAULT NULL, + `assignee` varchar(255) NOT NULL DEFAULT '', + `reviewer` varchar(255) NOT NULL DEFAULT '', + `approver` varchar(255) NOT NULL DEFAULT '', + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + `status` char(30) NOT NULL DEFAULT '', + `mergeStatus` char(30) NOT NULL DEFAULT '', + `approvalStatus` char(30) NOT NULL DEFAULT '', + `needApproved` enum('0','1') NOT NULL DEFAULT '0', + `needCI` enum('0','1') NOT NULL DEFAULT '0', + `repoID` mediumint(8) unsigned NOT NULL DEFAULT 0, + `jobID` mediumint(8) unsigned NOT NULL DEFAULT 0, + `executionID` mediumint(8) unsigned NOT NULL DEFAULT 0, + `compileID` mediumint(8) unsigned NOT NULL DEFAULT 0, + `compileStatus` char(30) NOT NULL DEFAULT '', + `removeSourceBranch` enum('0','1') NOT NULL DEFAULT '0', + `squash` enum('0','1') NOT NULL DEFAULT '0', + `isFlow` enum('0','1') NOT NULL DEFAULT '0', + `synced` enum('0','1') NOT NULL DEFAULT '1', + `syncError` varchar(255) NOT NULL DEFAULT '', + `hasNoConflict` enum('0','1') NOT NULL DEFAULT '0', + `diffs` longtext DEFAULT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_mrapproval` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `mrID` mediumint(8) unsigned NOT NULL DEFAULT 0, + `account` varchar(255) NOT NULL DEFAULT '', + `date` datetime DEFAULT NULL, + `action` char(30) NOT NULL DEFAULT '', + `comment` text DEFAULT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_nc` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `project` mediumint(8) unsigned NOT NULL DEFAULT 0, + `auditplan` mediumint(8) NOT NULL DEFAULT 0, + `listID` mediumint(8) NOT NULL DEFAULT 0, + `title` varchar(255) NOT NULL DEFAULT '', + `desc` mediumtext DEFAULT NULL, + `type` char(30) NOT NULL DEFAULT '', + `status` varchar(30) NOT NULL DEFAULT 'active', + `severity` char(30) NOT NULL DEFAULT '', + `deadline` date DEFAULT NULL, + `resolvedBy` varchar(30) NOT NULL DEFAULT '', + `resolution` char(30) NOT NULL DEFAULT '', + `resolvedDate` date DEFAULT NULL, + `closedBy` varchar(30) NOT NULL DEFAULT '', + `closedDate` date DEFAULT NULL, + `parent` mediumint(8) unsigned NOT NULL DEFAULT 0, + `assignedTo` varchar(30) NOT NULL DEFAULT '', + `assignedDate` date DEFAULT NULL, + `activateDate` date DEFAULT NULL, + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_notify` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `objectType` varchar(50) NOT NULL DEFAULT '', + `objectID` mediumint(8) unsigned NOT NULL DEFAULT 0, + `action` mediumint(8) NOT NULL DEFAULT 0, + `toList` text DEFAULT NULL, + `ccList` text DEFAULT NULL, + `subject` text DEFAULT NULL, + `data` text DEFAULT NULL, + `createdBy` char(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `sendTime` datetime DEFAULT NULL, + `status` varchar(10) NOT NULL DEFAULT 'wait', + `failReason` text DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `objectType` (`objectType`), + KEY `status` (`status`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_oauth` ( + `account` varchar(30) NOT NULL DEFAULT '', + `openID` varchar(255) NOT NULL DEFAULT '', + `providerType` varchar(30) NOT NULL DEFAULT '', + `providerID` mediumint(8) unsigned NOT NULL DEFAULT 0, + UNIQUE KEY `account_openID` (`account`,`openID`,`providerType`,`providerID`), + KEY `account` (`account`), + KEY `providerType` (`providerType`), + KEY `providerID` (`providerID`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_object` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `project` mediumint(8) unsigned NOT NULL DEFAULT 0, + `product` mediumint(8) NOT NULL DEFAULT 0, + `from` mediumint(8) NOT NULL DEFAULT 0, + `title` varchar(255) NOT NULL DEFAULT '', + `category` char(30) NOT NULL DEFAULT '', + `version` varchar(255) NOT NULL DEFAULT '', + `type` enum('reviewed','taged') NOT NULL DEFAULT 'reviewed', + `enabled` enum('0','1') NOT NULL DEFAULT '1', + `range` text DEFAULT NULL, + `data` text DEFAULT NULL, + `storyEst` char(30) NOT NULL DEFAULT '', + `taskEst` char(30) NOT NULL DEFAULT '', + `requestEst` char(30) NOT NULL DEFAULT '', + `testEst` char(30) NOT NULL DEFAULT '', + `devEst` char(30) NOT NULL DEFAULT '', + `designEst` char(30) NOT NULL DEFAULT '', + `end` date DEFAULT NULL, + `createdBy` char(30) NOT NULL DEFAULT '', + `createdDate` date DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_opportunity` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `project` mediumint(8) unsigned NOT NULL DEFAULT 0, + `execution` mediumint(8) unsigned NOT NULL DEFAULT 0, + `name` varchar(255) NOT NULL DEFAULT '', + `source` char(30) NOT NULL DEFAULT '', + `type` char(30) NOT NULL DEFAULT '', + `strategy` char(30) NOT NULL DEFAULT '', + `status` varchar(30) NOT NULL DEFAULT 'active', + `impact` mediumint(8) NOT NULL DEFAULT 0, + `chance` mediumint(8) NOT NULL DEFAULT 0, + `ratio` mediumint(8) NOT NULL DEFAULT 0, + `pri` char(30) NOT NULL DEFAULT '', + `identifiedDate` date DEFAULT NULL, + `assignedTo` varchar(30) NOT NULL DEFAULT '', + `assignedDate` date DEFAULT NULL, + `approvedDate` date DEFAULT NULL, + `prevention` mediumtext DEFAULT NULL, + `plannedClosedDate` date DEFAULT NULL, + `actualClosedDate` date DEFAULT NULL, + `lib` mediumint(8) unsigned NOT NULL DEFAULT 0, + `from` mediumint(8) unsigned NOT NULL DEFAULT 0, + `desc` mediumtext DEFAULT NULL, + `version` smallint(6) NOT NULL DEFAULT 1, + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `activatedBy` varchar(30) NOT NULL DEFAULT '', + `activatedDate` datetime DEFAULT NULL, + `closedBy` varchar(30) NOT NULL DEFAULT '', + `closedDate` datetime DEFAULT NULL, + `canceledBy` varchar(30) NOT NULL DEFAULT '', + `canceledDate` datetime DEFAULT NULL, + `cancelReason` char(30) NOT NULL DEFAULT '', + `hangupedBy` varchar(30) NOT NULL DEFAULT '', + `hangupedDate` datetime DEFAULT NULL, + `resolution` mediumtext DEFAULT NULL, + `resolvedBy` varchar(30) NOT NULL DEFAULT '', + `resolvedDate` datetime DEFAULT NULL, + `lastCheckedBy` varchar(30) NOT NULL DEFAULT '', + `lastCheckedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_overtime` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `year` char(4) NOT NULL DEFAULT '', + `begin` date DEFAULT NULL, + `end` date DEFAULT NULL, + `start` time DEFAULT NULL, + `finish` time DEFAULT NULL, + `hours` float(4,1) unsigned NOT NULL DEFAULT 0.0, + `leave` varchar(255) NOT NULL DEFAULT '', + `type` varchar(30) NOT NULL DEFAULT '', + `desc` text DEFAULT NULL, + `status` varchar(30) NOT NULL DEFAULT '', + `rejectReason` varchar(100) NOT NULL DEFAULT '', + `createdBy` char(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `reviewedBy` char(30) NOT NULL DEFAULT '', + `reviewedDate` datetime DEFAULT NULL, + `level` tinyint(3) NOT NULL DEFAULT 0, + `assignedTo` varchar(30) NOT NULL DEFAULT '', + `reviewers` text DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `year` (`year`), + KEY `type` (`type`), + KEY `status` (`status`), + KEY `createdBy` (`createdBy`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_pipeline` ( + `id` smallint(8) unsigned NOT NULL AUTO_INCREMENT, + `type` char(30) NOT NULL DEFAULT '', + `name` varchar(50) NOT NULL DEFAULT '', + `url` varchar(255) DEFAULT NULL, + `account` varchar(30) DEFAULT NULL, + `password` varchar(255) DEFAULT NULL, + `token` varchar(255) DEFAULT NULL, + `private` char(32) DEFAULT NULL, + `instanceID` mediumint(8) unsigned NOT NULL DEFAULT 0, + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_pivot` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `dimension` mediumint(8) unsigned NOT NULL DEFAULT 0, + `group` varchar(255) NOT NULL DEFAULT '', + `code` varchar(255) NOT NULL DEFAULT '', + `driver` enum('mysql','duckdb') NOT NULL DEFAULT 'mysql', + `mode` varchar(10) NOT NULL DEFAULT 'builder', + `name` text DEFAULT NULL, + `desc` text DEFAULT NULL, + `acl` enum('open','private') NOT NULL DEFAULT 'open', + `whitelist` text DEFAULT NULL, + `sql` text DEFAULT NULL, + `fields` text DEFAULT NULL, + `langs` text DEFAULT NULL, + `vars` text DEFAULT NULL, + `objects` text DEFAULT NULL, + `settings` text DEFAULT NULL, + `filters` text DEFAULT NULL, + `step` tinyint(3) unsigned NOT NULL DEFAULT 0, + `stage` enum('draft','published') NOT NULL DEFAULT 'draft', + `builtin` enum('0','1') NOT NULL DEFAULT '0', + `version` varchar(10) NOT NULL DEFAULT '1', + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`), + KEY `dimension` (`dimension`), + KEY `group` (`group`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_pivotdrill` ( + `pivot` mediumint(9) NOT NULL, + `version` varchar(10) NOT NULL DEFAULT '1', + `field` varchar(255) NOT NULL, + `object` varchar(40) NOT NULL, + `whereSql` mediumtext NOT NULL, + `condition` mediumtext NOT NULL, + `status` enum('design','published') NOT NULL DEFAULT 'published', + `account` varchar(30) NOT NULL DEFAULT '', + `type` enum('auto','manual') NOT NULL DEFAULT 'manual' +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_pivotspec` ( + `pivot` mediumint(8) NOT NULL, + `version` varchar(10) NOT NULL, + `driver` enum('mysql','duckdb') NOT NULL DEFAULT 'mysql', + `mode` varchar(10) NOT NULL DEFAULT 'builder', + `name` text DEFAULT NULL, + `desc` text DEFAULT NULL, + `sql` text DEFAULT NULL, + `fields` text DEFAULT NULL, + `langs` text DEFAULT NULL, + `vars` text DEFAULT NULL, + `objects` text DEFAULT NULL, + `settings` text DEFAULT NULL, + `filters` text DEFAULT NULL, + `createdDate` datetime DEFAULT NULL, + UNIQUE KEY `idx_pivot_version` (`pivot`,`version`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_planstory` ( + `plan` mediumint(8) unsigned NOT NULL DEFAULT 0, + `story` mediumint(8) unsigned NOT NULL DEFAULT 0, + `order` mediumint(9) NOT NULL DEFAULT 0, + UNIQUE KEY `plan_story` (`plan`,`story`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_practice` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `module` mediumint(8) unsigned NOT NULL DEFAULT 0, + `code` char(50) NOT NULL DEFAULT '', + `title` varchar(255) NOT NULL DEFAULT '', + `labels` varchar(255) NOT NULL DEFAULT '', + `summary` varchar(255) NOT NULL DEFAULT '', + `content` text DEFAULT NULL, + `contributor` varchar(255) NOT NULL DEFAULT '', + PRIMARY KEY (`id`), + UNIQUE KEY `code` (`code`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_priv` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `module` varchar(30) NOT NULL DEFAULT '', + `method` varchar(30) NOT NULL DEFAULT '', + `parent` mediumint(8) unsigned NOT NULL DEFAULT 0, + `edition` varchar(30) NOT NULL DEFAULT ',open,biz,max,', + `vision` varchar(30) NOT NULL DEFAULT ',rnd,', + `system` enum('0','1') NOT NULL DEFAULT '0', + `order` mediumint(8) NOT NULL DEFAULT 0, + PRIMARY KEY (`id`), + UNIQUE KEY `priv` (`module`,`method`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_privlang` ( + `objectID` mediumint(8) unsigned NOT NULL DEFAULT 0, + `objectType` enum('priv','manager') NOT NULL DEFAULT 'priv', + `lang` varchar(30) NOT NULL DEFAULT '', + `key` varchar(100) NOT NULL DEFAULT '', + `value` varchar(255) NOT NULL DEFAULT '', + `desc` text DEFAULT NULL, + UNIQUE KEY `objectlang` (`objectID`,`objectType`,`lang`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_privmanager` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `parent` mediumint(8) unsigned NOT NULL DEFAULT 0, + `code` varchar(100) NOT NULL DEFAULT '', + `type` enum('view','module','package') NOT NULL DEFAULT 'package', + `edition` varchar(30) NOT NULL DEFAULT ',open,biz,max,', + `vision` varchar(30) NOT NULL DEFAULT ',rnd,', + `order` mediumint(8) NOT NULL DEFAULT 0, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_privrelation` ( + `priv` varchar(100) NOT NULL DEFAULT '', + `type` varchar(30) NOT NULL DEFAULT '', + `relationPriv` varchar(100) NOT NULL DEFAULT '', + UNIQUE KEY `privrelation` (`priv`,`type`,`relationPriv`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_process` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `model` char(30) NOT NULL DEFAULT 'waterfall', + `name` varchar(255) NOT NULL DEFAULT '', + `type` char(30) NOT NULL DEFAULT '', + `abbr` char(30) NOT NULL DEFAULT '', + `desc` mediumtext DEFAULT NULL, + `assignedTo` varchar(30) NOT NULL DEFAULT '', + `status` varchar(30) NOT NULL DEFAULT '', + `order` mediumint(9) NOT NULL DEFAULT 0, + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `assignedBy` varchar(30) NOT NULL DEFAULT '', + `assignedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_product` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `program` mediumint(8) unsigned NOT NULL DEFAULT 0, + `name` varchar(110) NOT NULL DEFAULT '', + `code` varchar(45) NOT NULL DEFAULT '', + `shadow` tinyint(1) unsigned NOT NULL DEFAULT 0, + `bind` enum('0','1') NOT NULL DEFAULT '0', + `line` mediumint(8) NOT NULL DEFAULT 0, + `type` varchar(30) NOT NULL DEFAULT 'normal', + `status` varchar(30) NOT NULL DEFAULT '', + `subStatus` varchar(30) NOT NULL DEFAULT '', + `desc` mediumtext DEFAULT NULL, + `PO` varchar(30) NOT NULL DEFAULT '', + `QD` varchar(30) NOT NULL DEFAULT '', + `RD` varchar(30) NOT NULL DEFAULT '', + `feedback` varchar(30) NOT NULL DEFAULT '', + `ticket` varchar(30) NOT NULL DEFAULT '', + `workflowGroup` int(8) NOT NULL DEFAULT 0, + `acl` enum('open','private','custom') NOT NULL DEFAULT 'open', + `groups` text DEFAULT NULL, + `whitelist` text DEFAULT NULL, + `reviewer` text DEFAULT NULL, + `PMT` text DEFAULT NULL, + `draftEpics` mediumint(8) NOT NULL DEFAULT 0, + `activeEpics` mediumint(8) NOT NULL DEFAULT 0, + `changingEpics` mediumint(8) NOT NULL DEFAULT 0, + `reviewingEpics` mediumint(8) NOT NULL DEFAULT 0, + `finishedEpics` mediumint(8) NOT NULL DEFAULT 0, + `closedEpics` mediumint(8) NOT NULL DEFAULT 0, + `totalEpics` mediumint(8) NOT NULL DEFAULT 0, + `draftRequirements` mediumint(8) NOT NULL DEFAULT 0, + `activeRequirements` mediumint(8) NOT NULL DEFAULT 0, + `changingRequirements` mediumint(8) NOT NULL DEFAULT 0, + `reviewingRequirements` mediumint(8) NOT NULL DEFAULT 0, + `finishedRequirements` mediumint(8) NOT NULL DEFAULT 0, + `closedRequirements` mediumint(8) NOT NULL DEFAULT 0, + `totalRequirements` mediumint(8) NOT NULL DEFAULT 0, + `draftStories` mediumint(8) NOT NULL DEFAULT 0, + `activeStories` mediumint(8) NOT NULL DEFAULT 0, + `changingStories` mediumint(8) NOT NULL DEFAULT 0, + `reviewingStories` mediumint(8) NOT NULL DEFAULT 0, + `finishedStories` mediumint(8) NOT NULL DEFAULT 0, + `closedStories` mediumint(8) NOT NULL DEFAULT 0, + `totalStories` mediumint(8) NOT NULL DEFAULT 0, + `unresolvedBugs` mediumint(8) NOT NULL DEFAULT 0, + `closedBugs` mediumint(8) NOT NULL DEFAULT 0, + `fixedBugs` mediumint(8) NOT NULL DEFAULT 0, + `totalBugs` mediumint(8) NOT NULL DEFAULT 0, + `plans` mediumint(8) NOT NULL DEFAULT 0, + `releases` mediumint(8) NOT NULL DEFAULT 0, + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `createdVersion` varchar(20) NOT NULL DEFAULT '', + `closedDate` date DEFAULT NULL, + `order` mediumint(8) unsigned NOT NULL DEFAULT 0, + `vision` varchar(10) NOT NULL DEFAULT 'rnd', + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`), + KEY `acl` (`acl`), + KEY `order` (`order`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_productplan` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `product` mediumint(8) unsigned NOT NULL DEFAULT 0, + `branch` varchar(255) NOT NULL DEFAULT '0', + `parent` mediumint(9) NOT NULL DEFAULT 0, + `title` varchar(90) NOT NULL DEFAULT '', + `status` enum('wait','doing','done','closed') NOT NULL DEFAULT 'wait', + `desc` mediumtext DEFAULT NULL, + `begin` date DEFAULT NULL, + `end` date DEFAULT NULL, + `finishedDate` datetime DEFAULT NULL, + `closedDate` datetime DEFAULT NULL, + `order` text DEFAULT NULL, + `closedReason` varchar(20) NOT NULL DEFAULT '', + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`), + KEY `product` (`product`), + KEY `end` (`end`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_programactivity` ( + `id` int(8) NOT NULL AUTO_INCREMENT, + `project` mediumint(8) unsigned NOT NULL DEFAULT 0, + `execution` mediumint(8) unsigned NOT NULL DEFAULT 0, + `process` mediumint(8) NOT NULL DEFAULT 0, + `activity` mediumint(8) NOT NULL DEFAULT 0, + `name` varchar(255) NOT NULL DEFAULT '', + `content` text DEFAULT NULL, + `reason` varchar(255) NOT NULL DEFAULT '', + `result` char(30) NOT NULL DEFAULT '', + `linkedBy` char(30) NOT NULL DEFAULT '', + `createdBy` char(30) NOT NULL DEFAULT '', + `createdDate` date DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_programoutput` ( + `id` int(8) NOT NULL AUTO_INCREMENT, + `project` mediumint(8) unsigned NOT NULL DEFAULT 0, + `execution` mediumint(8) unsigned NOT NULL DEFAULT 0, + `process` mediumint(8) NOT NULL DEFAULT 0, + `activity` mediumint(8) NOT NULL DEFAULT 0, + `output` mediumint(8) NOT NULL DEFAULT 0, + `content` text DEFAULT NULL, + `name` varchar(255) NOT NULL DEFAULT '', + `reason` varchar(255) NOT NULL DEFAULT '', + `result` char(30) NOT NULL DEFAULT '', + `linkedBy` char(30) NOT NULL DEFAULT '', + `createdBy` char(30) NOT NULL DEFAULT '', + `createdDate` date DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_programprocess` ( + `id` int(8) NOT NULL AUTO_INCREMENT, + `project` mediumint(8) unsigned NOT NULL DEFAULT 0, + `process` mediumint(8) NOT NULL DEFAULT 0, + `name` varchar(255) NOT NULL DEFAULT '', + `type` char(30) NOT NULL DEFAULT '', + `abbr` char(30) NOT NULL DEFAULT '', + `desc` text DEFAULT NULL, + `reason` varchar(255) NOT NULL DEFAULT '', + `linkedBy` char(30) NOT NULL DEFAULT '', + `createdBy` char(30) NOT NULL DEFAULT '', + `createdDate` date DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_programreport` ( + `id` mediumint(8) NOT NULL AUTO_INCREMENT, + `template` mediumint(8) NOT NULL DEFAULT 0, + `project` mediumint(8) unsigned NOT NULL DEFAULT 0, + `name` varchar(255) NOT NULL DEFAULT '', + `params` text DEFAULT NULL, + `content` text DEFAULT NULL, + `createdBy` char(30) NOT NULL DEFAULT '', + `createdDate` date DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_project` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `project` mediumint(8) NOT NULL DEFAULT 0, + `charter` mediumint(8) NOT NULL DEFAULT 0, + `model` char(30) NOT NULL DEFAULT '', + `type` char(30) NOT NULL DEFAULT 'sprint', + `category` char(30) NOT NULL DEFAULT '', + `lifetime` char(30) NOT NULL DEFAULT '', + `budget` varchar(30) NOT NULL DEFAULT '0', + `budgetUnit` char(30) NOT NULL DEFAULT 'CNY', + `attribute` varchar(30) NOT NULL DEFAULT '', + `percent` float unsigned NOT NULL DEFAULT 0, + `milestone` enum('0','1') NOT NULL DEFAULT '0', + `output` text DEFAULT NULL, + `auth` char(30) NOT NULL DEFAULT '', + `storyType` char(30) NOT NULL DEFAULT '', + `parent` mediumint(8) unsigned NOT NULL DEFAULT 0, + `path` varchar(255) NOT NULL DEFAULT '', + `grade` tinyint(3) unsigned NOT NULL DEFAULT 0, + `name` varchar(90) NOT NULL DEFAULT '', + `code` varchar(45) NOT NULL DEFAULT '', + `hasProduct` tinyint(1) unsigned NOT NULL DEFAULT 1, + `workflowGroup` int(8) NOT NULL DEFAULT 0, + `begin` date DEFAULT NULL, + `end` date DEFAULT NULL, + `firstEnd` date DEFAULT NULL, + `realBegan` date DEFAULT NULL, + `realEnd` date DEFAULT NULL, + `days` smallint(6) unsigned NOT NULL DEFAULT 0, + `status` varchar(10) NOT NULL DEFAULT '', + `subStatus` varchar(30) NOT NULL DEFAULT '', + `pri` enum('1','2','3','4') NOT NULL DEFAULT '1', + `desc` mediumtext DEFAULT NULL, + `version` smallint(6) NOT NULL DEFAULT 0, + `parentVersion` smallint(6) NOT NULL DEFAULT 0, + `planDuration` int(11) NOT NULL DEFAULT 0, + `realDuration` int(11) NOT NULL DEFAULT 0, + `progress` decimal(5,2) NOT NULL DEFAULT 0.00, + `estimate` float NOT NULL DEFAULT 0, + `left` float NOT NULL DEFAULT 0, + `consumed` float NOT NULL DEFAULT 0, + `teamCount` int(11) NOT NULL DEFAULT 0, + `market` mediumint(8) NOT NULL DEFAULT 0, + `openedBy` varchar(30) NOT NULL DEFAULT '', + `openedDate` datetime DEFAULT NULL, + `openedVersion` varchar(20) NOT NULL DEFAULT '', + `lastEditedBy` varchar(30) NOT NULL DEFAULT '', + `lastEditedDate` datetime DEFAULT NULL, + `closedBy` varchar(30) NOT NULL DEFAULT '', + `closedDate` datetime DEFAULT NULL, + `closedReason` varchar(20) NOT NULL DEFAULT '', + `canceledBy` varchar(30) NOT NULL DEFAULT '', + `canceledDate` datetime DEFAULT NULL, + `suspendedDate` date DEFAULT NULL, + `PO` varchar(30) NOT NULL DEFAULT '', + `PM` varchar(30) NOT NULL DEFAULT '', + `QD` varchar(30) NOT NULL DEFAULT '', + `RD` varchar(30) NOT NULL DEFAULT '', + `team` varchar(90) NOT NULL DEFAULT '', + `acl` char(30) NOT NULL DEFAULT 'open', + `whitelist` text DEFAULT NULL, + `order` mediumint(8) unsigned NOT NULL DEFAULT 0, + `vision` varchar(10) NOT NULL DEFAULT 'rnd', + `stageBy` enum('project','product') NOT NULL DEFAULT 'product', + `displayCards` smallint(6) NOT NULL DEFAULT 0, + `fluidBoard` enum('0','1') NOT NULL DEFAULT '0', + `multiple` enum('0','1') NOT NULL DEFAULT '1', + `parallel` mediumint(9) NOT NULL DEFAULT 0, + `enabled` enum('on','off') NOT NULL DEFAULT 'on', + `linkType` varchar(30) NOT NULL DEFAULT 'plan', + `colWidth` smallint(6) NOT NULL DEFAULT 264, + `minColWidth` smallint(6) NOT NULL DEFAULT 200, + `maxColWidth` smallint(6) NOT NULL DEFAULT 384, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`), + KEY `parent` (`parent`), + KEY `begin` (`begin`), + KEY `end` (`end`), + KEY `status` (`status`), + KEY `acl` (`acl`), + KEY `order` (`order`), + KEY `project` (`project`), + KEY `type_order` (`type`,`order`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_projectadmin` ( + `group` smallint(6) NOT NULL DEFAULT 0, + `account` char(30) NOT NULL DEFAULT '', + `programs` text DEFAULT NULL, + `projects` text DEFAULT NULL, + `products` text DEFAULT NULL, + `executions` text DEFAULT NULL, + UNIQUE KEY `group_account` (`group`,`account`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_projectcase` ( + `project` mediumint(8) unsigned NOT NULL DEFAULT 0, + `product` mediumint(8) unsigned NOT NULL DEFAULT 0, + `case` mediumint(8) unsigned NOT NULL DEFAULT 0, + `count` mediumint(8) unsigned NOT NULL DEFAULT 1, + `version` smallint(6) NOT NULL DEFAULT 1, + `order` smallint(6) unsigned NOT NULL DEFAULT 0, + UNIQUE KEY `project` (`project`,`case`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_projectproduct` ( + `project` mediumint(8) unsigned NOT NULL DEFAULT 0, + `product` mediumint(8) unsigned NOT NULL DEFAULT 0, + `branch` mediumint(8) unsigned NOT NULL DEFAULT 0, + `plan` varchar(255) NOT NULL DEFAULT '', + `roadmap` varchar(255) NOT NULL DEFAULT '', + UNIQUE KEY `project_product` (`project`,`product`,`branch`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_projectspec` ( + `project` mediumint(8) NOT NULL DEFAULT 0, + `version` smallint(6) NOT NULL DEFAULT 0, + `name` varchar(255) NOT NULL DEFAULT '', + `milestone` enum('0','1') NOT NULL DEFAULT '0', + `begin` date DEFAULT NULL, + `end` date DEFAULT NULL, + UNIQUE KEY `project` (`project`,`version`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_projectstory` ( + `project` mediumint(8) unsigned NOT NULL DEFAULT 0, + `product` mediumint(8) unsigned NOT NULL DEFAULT 0, + `branch` mediumint(8) unsigned NOT NULL DEFAULT 0, + `story` mediumint(8) unsigned NOT NULL DEFAULT 0, + `version` smallint(6) NOT NULL DEFAULT 1, + `order` smallint(6) unsigned NOT NULL DEFAULT 0, + UNIQUE KEY `project` (`project`,`story`), + KEY `story` (`story`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_queue` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `cron` mediumint(9) NOT NULL, + `type` varchar(255) NOT NULL, + `command` text NOT NULL, + `status` enum('wait','doing','done') NOT NULL DEFAULT 'wait', + `execId` int(11) DEFAULT NULL, + `createdDate` datetime NOT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`), + KEY `status_createdDate` (`status`,`createdDate`), + KEY `cron_createdDate` (`cron`,`createdDate`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_relation` ( + `id` int(8) NOT NULL AUTO_INCREMENT, + `project` mediumint(8) NOT NULL DEFAULT 0, + `product` mediumint(8) NOT NULL DEFAULT 0, + `execution` mediumint(8) NOT NULL DEFAULT 0, + `AType` char(30) NOT NULL DEFAULT '', + `AID` mediumint(8) NOT NULL DEFAULT 0, + `AVersion` char(30) NOT NULL DEFAULT '', + `relation` char(30) NOT NULL DEFAULT '', + `BType` char(30) NOT NULL DEFAULT '', + `BID` mediumint(8) NOT NULL DEFAULT 0, + `BVersion` char(30) NOT NULL DEFAULT '', + `extra` char(30) NOT NULL DEFAULT '', + PRIMARY KEY (`id`), + UNIQUE KEY `relation` (`product`,`relation`,`AType`,`BType`,`AID`,`BID`), + KEY `AID` (`AType`,`AID`), + KEY `BID` (`BType`,`BID`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_relationoftasks` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `execution` mediumint(8) unsigned NOT NULL, + `pretask` mediumint(8) unsigned NOT NULL, + `condition` enum('begin','end') NOT NULL, + `task` mediumint(8) unsigned NOT NULL, + `action` enum('begin','end') NOT NULL, + PRIMARY KEY (`id`), + KEY `relationoftasks` (`execution`,`task`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_release` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `project` varchar(255) NOT NULL DEFAULT '0', + `product` mediumint(8) unsigned NOT NULL DEFAULT 0, + `branch` varchar(255) NOT NULL DEFAULT '0', + `shadow` mediumint(8) unsigned NOT NULL DEFAULT 0, + `build` varchar(255) NOT NULL DEFAULT '', + `name` varchar(255) NOT NULL DEFAULT '', + `system` mediumint(8) unsigned NOT NULL DEFAULT 0, + `releases` varchar(255) NOT NULL DEFAULT '', + `marker` enum('0','1') NOT NULL DEFAULT '0', + `date` date DEFAULT NULL, + `releasedDate` date DEFAULT NULL, + `stories` text DEFAULT NULL, + `bugs` text DEFAULT NULL, + `leftBugs` text DEFAULT NULL, + `desc` mediumtext DEFAULT NULL, + `mailto` text DEFAULT NULL, + `notify` varchar(255) NOT NULL DEFAULT '', + `status` varchar(20) NOT NULL DEFAULT 'normal', + `subStatus` varchar(30) NOT NULL DEFAULT '', + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`), + KEY `product` (`product`), + KEY `build` (`build`), + KEY `idx_system` (`system`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_releaserelated` ( + `id` int(11) unsigned NOT NULL AUTO_INCREMENT, + `release` int(11) unsigned NOT NULL, + `objectID` int(11) unsigned NOT NULL, + `objectType` varchar(10) NOT NULL DEFAULT '', + PRIMARY KEY (`id`), + UNIQUE KEY `unique` (`release`,`objectID`,`objectType`), + KEY `objectID` (`objectID`), + KEY `objectType` (`objectType`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_repo` ( + `id` mediumint(9) NOT NULL AUTO_INCREMENT, + `product` varchar(255) NOT NULL DEFAULT '', + `projects` varchar(255) NOT NULL DEFAULT '', + `name` varchar(255) NOT NULL DEFAULT '', + `path` varchar(255) NOT NULL DEFAULT '', + `prefix` varchar(100) NOT NULL DEFAULT '', + `encoding` varchar(20) NOT NULL DEFAULT '', + `SCM` varchar(10) NOT NULL DEFAULT '', + `client` varchar(100) NOT NULL DEFAULT '', + `serviceHost` varchar(50) NOT NULL DEFAULT '', + `serviceProject` varchar(100) NOT NULL DEFAULT '', + `commits` mediumint(8) unsigned NOT NULL DEFAULT 0, + `account` varchar(30) NOT NULL DEFAULT '', + `password` varchar(30) NOT NULL DEFAULT '', + `encrypt` varchar(30) NOT NULL DEFAULT 'plain', + `acl` text DEFAULT NULL, + `synced` tinyint(1) NOT NULL DEFAULT 0, + `lastSync` datetime DEFAULT NULL, + `lastCommit` datetime DEFAULT NULL, + `desc` text DEFAULT NULL, + `extra` char(30) NOT NULL DEFAULT '', + `preMerge` enum('0','1') NOT NULL DEFAULT '0', + `job` mediumint(8) unsigned NOT NULL DEFAULT 0, + `fileServerUrl` text DEFAULT NULL, + `fileServerAccount` varchar(40) NOT NULL DEFAULT '', + `fileServerPassword` varchar(100) NOT NULL DEFAULT '', + `deleted` tinyint(1) NOT NULL DEFAULT 0, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_repobranch` ( + `repo` mediumint(8) unsigned NOT NULL DEFAULT 0, + `revision` mediumint(8) unsigned NOT NULL DEFAULT 0, + `branch` varchar(255) NOT NULL DEFAULT '', + UNIQUE KEY `repo_revision_branch` (`repo`,`revision`,`branch`), + KEY `branch` (`branch`), + KEY `revision` (`revision`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_repofiles` ( + `id` int(11) unsigned NOT NULL AUTO_INCREMENT, + `repo` mediumint(8) unsigned NOT NULL DEFAULT 0, + `revision` mediumint(8) unsigned NOT NULL DEFAULT 0, + `path` varchar(255) NOT NULL DEFAULT '', + `oldPath` varchar(255) NOT NULL DEFAULT '', + `parent` varchar(255) NOT NULL DEFAULT '', + `type` varchar(20) NOT NULL DEFAULT '', + `action` char(1) NOT NULL DEFAULT '', + PRIMARY KEY (`id`), + KEY `path` (`path`), + KEY `parent` (`parent`), + KEY `repo` (`repo`), + KEY `revision` (`revision`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_repohistory` ( + `id` mediumint(9) NOT NULL AUTO_INCREMENT, + `repo` mediumint(9) NOT NULL DEFAULT 0, + `revision` varchar(40) NOT NULL DEFAULT '', + `commit` mediumint(8) unsigned NOT NULL DEFAULT 0, + `comment` text DEFAULT NULL, + `committer` varchar(100) NOT NULL DEFAULT '', + `time` datetime DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `repo` (`repo`), + KEY `revision` (`revision`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_report` ( + `id` mediumint(9) NOT NULL AUTO_INCREMENT, + `code` varchar(100) NOT NULL DEFAULT '', + `name` text DEFAULT NULL, + `dimension` int(8) NOT NULL DEFAULT 0, + `module` varchar(100) NOT NULL DEFAULT '', + `sql` text DEFAULT NULL, + `vars` text DEFAULT NULL, + `langs` text DEFAULT NULL, + `params` text DEFAULT NULL, + `step` tinyint(1) NOT NULL DEFAULT 2, + `desc` text DEFAULT NULL, + `addedBy` char(30) NOT NULL DEFAULT '', + `addedDate` datetime DEFAULT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `code` (`code`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_researchplan` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `project` mediumint(8) unsigned NOT NULL DEFAULT 0, + `name` varchar(255) NOT NULL DEFAULT '', + `customer` varchar(255) NOT NULL DEFAULT '', + `stakeholder` varchar(255) NOT NULL DEFAULT '', + `objective` varchar(255) NOT NULL DEFAULT '', + `begin` datetime DEFAULT NULL, + `end` datetime DEFAULT NULL, + `location` varchar(255) NOT NULL DEFAULT '', + `team` varchar(255) NOT NULL DEFAULT '', + `method` enum('','videoConference','interview','questionnaire','telephoneInterview') NOT NULL DEFAULT '', + `outline` mediumtext DEFAULT NULL, + `schedule` mediumtext DEFAULT NULL, + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_researchreport` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `project` mediumint(8) unsigned NOT NULL DEFAULT 0, + `relatedPlan` mediumint(8) unsigned NOT NULL DEFAULT 0, + `title` varchar(255) NOT NULL DEFAULT '', + `author` varchar(30) NOT NULL DEFAULT '', + `content` mediumtext DEFAULT NULL, + `customer` varchar(255) NOT NULL DEFAULT '', + `researchObjects` varchar(255) NOT NULL DEFAULT '', + `begin` datetime DEFAULT NULL, + `end` datetime DEFAULT NULL, + `location` varchar(255) NOT NULL DEFAULT '', + `method` enum('','videoConference','interview','questionnaire','telephoneInterview') NOT NULL DEFAULT '', + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_review` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `project` mediumint(8) unsigned NOT NULL DEFAULT 0, + `title` varchar(255) NOT NULL DEFAULT '', + `object` mediumint(8) NOT NULL DEFAULT 0, + `template` mediumint(8) NOT NULL DEFAULT 0, + `doc` varchar(255) NOT NULL DEFAULT '', + `docVersion` varchar(255) NOT NULL DEFAULT '', + `status` char(30) NOT NULL DEFAULT '', + `reviewedBy` varchar(255) NOT NULL DEFAULT '', + `auditedBy` varchar(255) NOT NULL DEFAULT '', + `createdBy` char(30) NOT NULL DEFAULT '', + `createdDate` date DEFAULT NULL, + `begin` date DEFAULT NULL, + `deadline` date DEFAULT NULL, + `lastReviewedBy` varchar(255) NOT NULL DEFAULT '', + `lastReviewedDate` date DEFAULT NULL, + `lastAuditedBy` varchar(255) NOT NULL DEFAULT '', + `lastAuditedDate` date DEFAULT NULL, + `toAuditBy` varchar(30) NOT NULL DEFAULT '', + `toAuditDate` datetime DEFAULT NULL, + `lastEditedBy` varchar(255) NOT NULL DEFAULT '', + `lastEditedDate` date DEFAULT NULL, + `result` char(30) NOT NULL DEFAULT '', + `auditResult` char(30) NOT NULL DEFAULT '', + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_reviewcl` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `title` varchar(255) NOT NULL DEFAULT '', + `object` char(30) NOT NULL DEFAULT '', + `category` char(30) NOT NULL DEFAULT '', + `type` varchar(255) NOT NULL DEFAULT '', + `assignedTo` varchar(30) NOT NULL DEFAULT '', + `order` mediumint(8) DEFAULT 0, + `status` varchar(30) NOT NULL DEFAULT '', + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `assignedBy` varchar(30) NOT NULL DEFAULT '', + `assignedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_reviewissue` ( + `id` mediumint(8) NOT NULL AUTO_INCREMENT, + `project` mediumint(8) unsigned NOT NULL DEFAULT 0, + `review` mediumint(8) NOT NULL DEFAULT 0, + `approval` mediumint(8) NOT NULL DEFAULT 0, + `injection` mediumint(8) NOT NULL DEFAULT 0, + `identify` mediumint(8) NOT NULL DEFAULT 0, + `type` char(30) NOT NULL DEFAULT 'review', + `listID` mediumint(8) NOT NULL DEFAULT 0, + `title` varchar(255) NOT NULL DEFAULT '', + `opinion` mediumtext DEFAULT NULL, + `opinionDate` date DEFAULT NULL, + `status` char(30) NOT NULL DEFAULT '', + `resolution` char(30) NOT NULL DEFAULT '', + `resolutionBy` char(30) NOT NULL DEFAULT '', + `resolutionDate` date DEFAULT NULL, + `createdBy` char(30) NOT NULL DEFAULT '', + `createdDate` date DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_reviewlist` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `title` varchar(255) NOT NULL DEFAULT '', + `object` char(30) NOT NULL DEFAULT '', + `category` char(30) NOT NULL DEFAULT '', + `assignedTo` varchar(30) NOT NULL DEFAULT '', + `status` varchar(30) NOT NULL DEFAULT '', + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `assignedBy` varchar(30) NOT NULL DEFAULT '', + `assignedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_reviewresult` ( + `id` mediumint(8) NOT NULL AUTO_INCREMENT, + `review` mediumint(8) NOT NULL DEFAULT 0, + `type` char(30) NOT NULL DEFAULT 'review', + `result` char(30) NOT NULL DEFAULT '', + `opinion` text DEFAULT NULL, + `reviewer` char(30) NOT NULL DEFAULT '', + `remainIssue` char(30) NOT NULL DEFAULT '', + `createdDate` date DEFAULT NULL, + `consumed` float NOT NULL DEFAULT 0, + PRIMARY KEY (`id`), + UNIQUE KEY `reviewer` (`review`,`reviewer`,`type`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_risk` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `project` varchar(255) NOT NULL DEFAULT '', + `execution` mediumint(8) unsigned NOT NULL DEFAULT 0, + `name` varchar(255) NOT NULL DEFAULT '', + `source` char(30) NOT NULL DEFAULT '', + `category` char(30) NOT NULL DEFAULT '', + `strategy` char(30) NOT NULL DEFAULT '', + `status` varchar(30) NOT NULL DEFAULT 'active', + `impact` char(30) NOT NULL DEFAULT '', + `probability` char(30) NOT NULL DEFAULT '', + `rate` char(30) NOT NULL DEFAULT '', + `pri` char(30) NOT NULL DEFAULT '', + `identifiedDate` date DEFAULT NULL, + `prevention` mediumtext DEFAULT NULL, + `remedy` mediumtext DEFAULT NULL, + `plannedClosedDate` date DEFAULT NULL, + `actualClosedDate` date DEFAULT NULL, + `lib` mediumint(8) unsigned NOT NULL DEFAULT 0, + `from` mediumint(8) unsigned NOT NULL DEFAULT 0, + `version` smallint(6) NOT NULL DEFAULT 1, + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `resolution` mediumtext DEFAULT NULL, + `resolvedBy` varchar(30) NOT NULL DEFAULT '', + `activateBy` varchar(30) NOT NULL DEFAULT '', + `activateDate` date DEFAULT NULL, + `assignedTo` varchar(30) NOT NULL DEFAULT '', + `closedBy` varchar(30) NOT NULL DEFAULT '', + `closedDate` date DEFAULT NULL, + `cancelBy` varchar(30) NOT NULL DEFAULT '', + `cancelDate` date DEFAULT NULL, + `cancelReason` char(30) NOT NULL DEFAULT '', + `hangupBy` varchar(30) NOT NULL DEFAULT '', + `hangupDate` date DEFAULT NULL, + `trackedBy` varchar(30) NOT NULL DEFAULT '', + `trackedDate` date DEFAULT NULL, + `assignedDate` date DEFAULT NULL, + `approvedDate` date DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_riskissue` ( + `risk` mediumint(8) unsigned NOT NULL DEFAULT 0, + `issue` mediumint(8) unsigned NOT NULL DEFAULT 0, + UNIQUE KEY `risk_issue` (`risk`,`issue`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_roadmap` ( + `id` mediumint(8) NOT NULL AUTO_INCREMENT, + `product` mediumint(8) NOT NULL DEFAULT 0, + `branch` mediumint(8) NOT NULL DEFAULT 0, + `name` varchar(255) NOT NULL DEFAULT '', + `status` char(30) NOT NULL DEFAULT '', + `begin` date DEFAULT NULL, + `end` date DEFAULT NULL, + `desc` longtext DEFAULT NULL, + `createdBy` char(30) NOT NULL DEFAULT '', + `createdDate` date DEFAULT NULL, + `closedBy` char(30) NOT NULL DEFAULT '', + `closedDate` datetime DEFAULT NULL, + `closedReason` enum('done','canceled') DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_roadmapstory` ( + `roadmap` mediumint(8) unsigned NOT NULL DEFAULT 0, + `story` mediumint(8) unsigned NOT NULL DEFAULT 0, + `order` mediumint(8) unsigned NOT NULL, + UNIQUE KEY `roadmap_story` (`roadmap`,`story`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_scene` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `product` mediumint(8) unsigned NOT NULL DEFAULT 0, + `branch` mediumint(8) unsigned NOT NULL DEFAULT 0, + `module` mediumint(8) unsigned NOT NULL DEFAULT 0, + `title` varchar(255) NOT NULL DEFAULT '', + `sort` int(11) unsigned NOT NULL DEFAULT 0, + `openedBy` char(30) NOT NULL DEFAULT '', + `openedDate` datetime DEFAULT NULL, + `lastEditedBy` char(30) NOT NULL DEFAULT '', + `lastEditedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + `parent` int(11) NOT NULL DEFAULT 0, + `grade` tinyint(3) NOT NULL DEFAULT 0, + `path` varchar(1000) NOT NULL DEFAULT '', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_score` ( + `id` bigint(12) unsigned NOT NULL AUTO_INCREMENT, + `account` varchar(30) NOT NULL DEFAULT '', + `module` varchar(30) NOT NULL DEFAULT '', + `method` varchar(30) NOT NULL DEFAULT '', + `desc` varchar(250) NOT NULL DEFAULT '', + `before` int(11) NOT NULL DEFAULT 0, + `score` int(11) NOT NULL DEFAULT 0, + `after` int(11) NOT NULL DEFAULT 0, + `time` datetime DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `account` (`account`), + KEY `module` (`module`), + KEY `method` (`method`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_screen` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `dimension` mediumint(8) unsigned NOT NULL DEFAULT 0, + `name` varchar(255) NOT NULL DEFAULT '', + `desc` mediumtext DEFAULT NULL, + `acl` enum('open','private') NOT NULL DEFAULT 'open', + `whitelist` text DEFAULT NULL, + `cover` mediumtext DEFAULT NULL, + `scheme` mediumtext DEFAULT NULL, + `status` enum('draft','published') NOT NULL DEFAULT 'draft', + `builtin` enum('0','1') NOT NULL DEFAULT '0', + `createdBy` char(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` char(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_searchdict` ( + `key` smallint(6) unsigned NOT NULL DEFAULT 0, + `value` char(3) NOT NULL DEFAULT '', + UNIQUE KEY `key_value` (`key`,`value`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_searchindex` ( + `id` int(11) unsigned NOT NULL AUTO_INCREMENT, + `vision` varchar(10) NOT NULL DEFAULT 'rnd', + `objectType` char(20) NOT NULL DEFAULT '', + `objectID` mediumint(9) NOT NULL DEFAULT 0, + `title` text DEFAULT NULL, + `content` text DEFAULT NULL, + `addedDate` datetime DEFAULT NULL, + `editedDate` datetime DEFAULT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `object` (`objectType`,`objectID`), + KEY `addedDate` (`addedDate`), + FULLTEXT KEY `title_content` (`title`,`content`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_serverroom` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `name` varchar(128) NOT NULL DEFAULT '', + `city` varchar(128) NOT NULL DEFAULT '', + `line` varchar(20) NOT NULL DEFAULT '', + `bandwidth` varchar(128) NOT NULL DEFAULT '', + `provider` varchar(128) NOT NULL DEFAULT '', + `owner` varchar(30) NOT NULL DEFAULT '', + `createdBy` char(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` char(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_session` ( + `id` varchar(32) NOT NULL, + `data` mediumtext DEFAULT NULL, + `timestamp` int(10) unsigned DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `timestamp` (`timestamp`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_solution` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `name` char(50) NOT NULL DEFAULT '', + `appID` mediumint(8) unsigned NOT NULL DEFAULT 0, + `appName` char(50) NOT NULL DEFAULT '', + `appVersion` char(20) NOT NULL DEFAULT '', + `version` char(50) NOT NULL DEFAULT '', + `chart` char(50) NOT NULL DEFAULT '', + `cover` varchar(255) NOT NULL DEFAULT '', + `desc` text DEFAULT NULL, + `introduction` varchar(255) NOT NULL DEFAULT '', + `source` char(20) NOT NULL DEFAULT '', + `channel` char(20) NOT NULL DEFAULT '', + `components` text DEFAULT NULL, + `status` char(20) NOT NULL DEFAULT '', + `deleted` tinyint(1) NOT NULL DEFAULT 0, + `createdBy` char(30) NOT NULL DEFAULT '', + `createdAt` datetime DEFAULT NULL, + `updatedDate` datetime DEFAULT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_solutions` ( + `id` mediumint(8) NOT NULL AUTO_INCREMENT, + `project` mediumint(8) unsigned NOT NULL DEFAULT 0, + `execution` mediumint(8) unsigned NOT NULL DEFAULT 0, + `contents` text NOT NULL, + `support` text NOT NULL, + `measures` text NOT NULL, + `type` char(30) NOT NULL DEFAULT '', + `addedBy` varchar(30) NOT NULL DEFAULT '', + `addedDate` date DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` date DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_space` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `name` varchar(200) NOT NULL, + `k8space` char(64) NOT NULL, + `owner` char(30) NOT NULL, + `default` tinyint(1) NOT NULL DEFAULT 0, + `createdAt` datetime DEFAULT NULL, + `deleted` tinyint(1) NOT NULL DEFAULT 0, + PRIMARY KEY (`id`), + KEY `name` (`name`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_sqlbuilder` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `objectID` mediumint(8) NOT NULL, + `objectType` varchar(50) NOT NULL, + `sql` text DEFAULT NULL, + `setting` text DEFAULT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_sqlview` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `name` varchar(90) NOT NULL DEFAULT '', + `code` varchar(45) NOT NULL DEFAULT '', + `sql` text DEFAULT NULL, + `desc` text DEFAULT NULL, + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_stage` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `name` varchar(255) NOT NULL DEFAULT '', + `percent` varchar(255) NOT NULL DEFAULT '', + `type` varchar(255) NOT NULL DEFAULT '', + `projectType` varchar(255) NOT NULL DEFAULT '', + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_stakeholder` ( + `id` mediumint(8) NOT NULL AUTO_INCREMENT, + `objectID` mediumint(8) NOT NULL DEFAULT 0, + `objectType` char(30) NOT NULL DEFAULT '', + `user` char(30) NOT NULL DEFAULT '', + `type` char(30) NOT NULL DEFAULT '', + `key` enum('0','1') NOT NULL DEFAULT '0', + `from` char(30) NOT NULL DEFAULT '', + `createdBy` char(30) NOT NULL DEFAULT '', + `createdDate` date DEFAULT NULL, + `editedBy` char(30) NOT NULL DEFAULT '', + `editedDate` date DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`), + KEY `objectID` (`objectID`), + KEY `objectType` (`objectType`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_story` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `vision` varchar(10) NOT NULL DEFAULT 'rnd', + `parent` mediumint(9) NOT NULL DEFAULT 0, + `isParent` enum('0','1') NOT NULL DEFAULT '0', + `root` mediumint(9) NOT NULL DEFAULT 0, + `path` text DEFAULT NULL, + `grade` smallint(6) NOT NULL DEFAULT 0, + `product` mediumint(8) unsigned NOT NULL DEFAULT 0, + `branch` mediumint(8) unsigned NOT NULL DEFAULT 0, + `module` mediumint(8) unsigned NOT NULL DEFAULT 0, + `plan` text DEFAULT NULL, + `source` varchar(20) NOT NULL DEFAULT '', + `sourceNote` varchar(255) NOT NULL DEFAULT '', + `fromBug` mediumint(8) unsigned NOT NULL DEFAULT 0, + `feedback` mediumint(8) unsigned NOT NULL DEFAULT 0, + `title` varchar(255) NOT NULL DEFAULT '', + `keywords` varchar(255) NOT NULL DEFAULT '', + `type` varchar(30) NOT NULL DEFAULT 'story', + `category` varchar(30) NOT NULL DEFAULT 'feature', + `pri` tinyint(3) unsigned NOT NULL DEFAULT 3, + `estimate` float unsigned NOT NULL DEFAULT 0, + `status` enum('','changing','active','draft','closed','reviewing','launched','developing') NOT NULL DEFAULT '', + `subStatus` varchar(30) NOT NULL DEFAULT '', + `color` char(7) NOT NULL DEFAULT '', + `stage` enum('','wait','inroadmap','incharter','planned','projected','designing','designed','developing','developed','testing','tested','verified','rejected','delivering','delivered','released','closed') NOT NULL DEFAULT 'wait', + `stagedBy` char(30) NOT NULL DEFAULT '', + `mailto` text DEFAULT NULL, + `lib` mediumint(8) unsigned NOT NULL DEFAULT 0, + `fromStory` mediumint(8) unsigned NOT NULL DEFAULT 0, + `fromVersion` smallint(6) NOT NULL DEFAULT 1, + `openedBy` varchar(30) NOT NULL DEFAULT '', + `openedDate` datetime DEFAULT NULL, + `assignedTo` varchar(30) NOT NULL DEFAULT '', + `assignedDate` datetime DEFAULT NULL, + `approvedDate` date DEFAULT NULL, + `lastEditedBy` varchar(30) NOT NULL DEFAULT '', + `lastEditedDate` datetime DEFAULT NULL, + `changedBy` varchar(30) NOT NULL DEFAULT '', + `changedDate` datetime DEFAULT NULL, + `reviewedBy` varchar(255) NOT NULL DEFAULT '', + `reviewedDate` datetime DEFAULT NULL, + `releasedDate` datetime DEFAULT NULL, + `closedBy` varchar(30) NOT NULL DEFAULT '', + `closedDate` datetime DEFAULT NULL, + `closedReason` varchar(30) NOT NULL DEFAULT '', + `activatedDate` datetime DEFAULT NULL, + `toBug` mediumint(8) unsigned NOT NULL DEFAULT 0, + `linkStories` varchar(255) NOT NULL DEFAULT '', + `linkRequirements` varchar(255) NOT NULL DEFAULT '', + `twins` varchar(255) NOT NULL DEFAULT '', + `duplicateStory` mediumint(8) unsigned NOT NULL DEFAULT 0, + `version` smallint(6) NOT NULL DEFAULT 1, + `parentVersion` smallint(6) NOT NULL DEFAULT 0, + `demandVersion` smallint(6) NOT NULL DEFAULT 0, + `storyChanged` enum('0','1') NOT NULL DEFAULT '0', + `feedbackBy` varchar(100) NOT NULL DEFAULT '', + `notifyEmail` varchar(100) NOT NULL DEFAULT '', + `BSA` char(30) NOT NULL DEFAULT '', + `duration` char(30) NOT NULL DEFAULT '', + `demand` mediumint(8) NOT NULL DEFAULT 0, + `submitedBy` varchar(30) NOT NULL DEFAULT '', + `roadmap` varchar(255) NOT NULL DEFAULT '', + `URChanged` enum('0','1') NOT NULL DEFAULT '0', + `unlinkReason` enum('','omit','other') NOT NULL DEFAULT '', + `retractedReason` enum('','omit','other') NOT NULL DEFAULT '', + `retractedBy` varchar(30) NOT NULL DEFAULT '', + `retractedDate` datetime DEFAULT NULL, + `verifiedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`), + KEY `product` (`product`), + KEY `root` (`root`), + KEY `status` (`status`), + KEY `assignedTo` (`assignedTo`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_storyestimate` ( + `story` mediumint(9) NOT NULL DEFAULT 0, + `round` smallint(6) NOT NULL DEFAULT 0, + `estimate` text DEFAULT NULL, + `average` float NOT NULL DEFAULT 0, + `openedBy` varchar(30) NOT NULL DEFAULT '', + `openedDate` datetime DEFAULT NULL, + UNIQUE KEY `story` (`story`,`round`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_storygrade` ( + `type` enum('story','requirement','epic') NOT NULL, + `grade` smallint(6) NOT NULL, + `name` char(30) NOT NULL, + `status` char(30) NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_storyreview` ( + `story` mediumint(9) NOT NULL DEFAULT 0, + `version` smallint(6) NOT NULL DEFAULT 0, + `reviewer` varchar(30) NOT NULL DEFAULT '', + `result` varchar(30) NOT NULL DEFAULT '', + `reviewDate` datetime DEFAULT NULL, + UNIQUE KEY `story` (`story`,`version`,`reviewer`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_storyspec` ( + `story` mediumint(9) NOT NULL DEFAULT 0, + `version` smallint(6) NOT NULL DEFAULT 0, + `title` varchar(255) NOT NULL DEFAULT '', + `spec` mediumtext DEFAULT NULL, + `verify` mediumtext DEFAULT NULL, + `files` text DEFAULT NULL, + UNIQUE KEY `story` (`story`,`version`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_storystage` ( + `story` mediumint(8) unsigned NOT NULL DEFAULT 0, + `branch` mediumint(8) unsigned NOT NULL DEFAULT 0, + `stage` varchar(50) NOT NULL DEFAULT '', + `stagedBy` char(30) NOT NULL DEFAULT '', + UNIQUE KEY `story_branch` (`story`,`branch`), + KEY `story` (`story`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_suitecase` ( + `suite` mediumint(8) unsigned NOT NULL DEFAULT 0, + `product` mediumint(8) unsigned NOT NULL DEFAULT 0, + `case` mediumint(8) unsigned NOT NULL DEFAULT 0, + `version` smallint(5) unsigned NOT NULL DEFAULT 0, + UNIQUE KEY `suitecase` (`suite`,`case`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_system` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `name` varchar(100) NOT NULL DEFAULT '', + `product` mediumint(8) unsigned NOT NULL DEFAULT 0, + `integrated` enum('0','1') NOT NULL DEFAULT '0', + `latestRelease` mediumint(8) unsigned NOT NULL DEFAULT 0, + `latestDate` datetime DEFAULT NULL, + `children` varchar(255) NOT NULL DEFAULT '', + `status` enum('active','inactive') NOT NULL DEFAULT 'active', + `desc` mediumtext DEFAULT NULL, + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`), + KEY `idx_product` (`product`), + KEY `idx_status` (`status`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_task` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `project` mediumint(8) unsigned NOT NULL DEFAULT 0, + `parent` mediumint(8) NOT NULL DEFAULT 0, + `isParent` tinyint(1) NOT NULL DEFAULT 0, + `path` text DEFAULT NULL, + `execution` mediumint(8) unsigned NOT NULL DEFAULT 0, + `module` mediumint(8) unsigned NOT NULL DEFAULT 0, + `design` mediumint(8) unsigned NOT NULL DEFAULT 0, + `story` mediumint(8) unsigned NOT NULL DEFAULT 0, + `storyVersion` smallint(6) NOT NULL DEFAULT 1, + `designVersion` smallint(6) unsigned NOT NULL DEFAULT 1, + `fromBug` mediumint(8) unsigned NOT NULL DEFAULT 0, + `feedback` mediumint(8) unsigned NOT NULL DEFAULT 0, + `fromIssue` mediumint(8) unsigned NOT NULL DEFAULT 0, + `name` varchar(255) NOT NULL DEFAULT '', + `type` varchar(20) NOT NULL DEFAULT '', + `mode` varchar(10) NOT NULL DEFAULT '', + `pri` tinyint(3) unsigned NOT NULL DEFAULT 0, + `estimate` float unsigned NOT NULL DEFAULT 0, + `consumed` float unsigned NOT NULL DEFAULT 0, + `left` float unsigned NOT NULL DEFAULT 0, + `deadline` date DEFAULT NULL, + `status` enum('wait','doing','done','pause','cancel','closed') NOT NULL DEFAULT 'wait', + `subStatus` varchar(30) NOT NULL DEFAULT '', + `color` char(7) NOT NULL DEFAULT '', + `mailto` text DEFAULT NULL, + `keywords` varchar(255) NOT NULL DEFAULT '', + `desc` mediumtext DEFAULT NULL, + `version` smallint(6) NOT NULL DEFAULT 0, + `openedBy` varchar(30) NOT NULL DEFAULT '', + `openedDate` datetime DEFAULT NULL, + `assignedTo` varchar(30) NOT NULL DEFAULT '', + `assignedDate` datetime DEFAULT NULL, + `estStarted` date DEFAULT NULL, + `realStarted` datetime DEFAULT NULL, + `finishedBy` varchar(30) NOT NULL DEFAULT '', + `finishedDate` datetime DEFAULT NULL, + `finishedList` text DEFAULT NULL, + `canceledBy` varchar(30) NOT NULL DEFAULT '', + `canceledDate` datetime DEFAULT NULL, + `closedBy` varchar(30) NOT NULL DEFAULT '', + `closedDate` datetime DEFAULT NULL, + `planDuration` int(11) NOT NULL DEFAULT 0, + `realDuration` int(11) NOT NULL DEFAULT 0, + `closedReason` varchar(30) NOT NULL DEFAULT '', + `lastEditedBy` varchar(30) NOT NULL DEFAULT '', + `lastEditedDate` datetime DEFAULT NULL, + `activatedDate` datetime DEFAULT NULL, + `order` mediumint(8) unsigned NOT NULL DEFAULT 0, + `repo` mediumint(8) unsigned NOT NULL DEFAULT 0, + `mr` mediumint(8) unsigned NOT NULL DEFAULT 0, + `entry` varchar(255) NOT NULL DEFAULT '', + `lines` varchar(10) NOT NULL DEFAULT '', + `v1` varchar(40) NOT NULL DEFAULT '', + `v2` varchar(40) NOT NULL DEFAULT '', + `deleted` enum('0','1') NOT NULL DEFAULT '0', + `vision` varchar(10) NOT NULL DEFAULT 'rnd', + PRIMARY KEY (`id`), + KEY `execution` (`execution`), + KEY `story` (`story`), + KEY `parent` (`parent`), + KEY `assignedTo` (`assignedTo`), + KEY `order` (`order`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_taskestimate` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `task` mediumint(8) unsigned NOT NULL DEFAULT 0, + `date` date DEFAULT NULL, + `left` float unsigned NOT NULL DEFAULT 0, + `consumed` float unsigned NOT NULL DEFAULT 0, + `account` char(30) NOT NULL DEFAULT '', + `work` text DEFAULT NULL, + `order` tinyint(3) unsigned NOT NULL DEFAULT 0, + PRIMARY KEY (`id`), + KEY `task` (`task`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_taskspec` ( + `task` mediumint(8) NOT NULL DEFAULT 0, + `version` smallint(6) NOT NULL DEFAULT 0, + `name` varchar(255) NOT NULL DEFAULT '', + `estStarted` date DEFAULT NULL, + `deadline` date DEFAULT NULL, + UNIQUE KEY `task` (`task`,`version`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_taskteam` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `task` mediumint(8) unsigned NOT NULL DEFAULT 0, + `account` char(30) NOT NULL DEFAULT '', + `estimate` decimal(12,2) NOT NULL DEFAULT 0.00, + `consumed` decimal(12,2) NOT NULL DEFAULT 0.00, + `left` decimal(12,2) NOT NULL DEFAULT 0.00, + `transfer` char(30) NOT NULL DEFAULT '', + `status` enum('wait','doing','done','cancel','closed') NOT NULL DEFAULT 'wait', + `storyVersion` smallint(6) NOT NULL DEFAULT 1, + `order` int(8) NOT NULL DEFAULT 0, + PRIMARY KEY (`id`), + KEY `task` (`task`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_team` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `root` mediumint(8) unsigned NOT NULL DEFAULT 0, + `type` enum('project','task','execution') NOT NULL DEFAULT 'project', + `account` char(30) NOT NULL DEFAULT '', + `role` char(30) NOT NULL DEFAULT '', + `position` varchar(30) NOT NULL DEFAULT '', + `limited` char(8) NOT NULL DEFAULT 'no', + `join` date DEFAULT NULL, + `days` smallint(5) unsigned NOT NULL DEFAULT 0, + `hours` float(3,1) unsigned NOT NULL DEFAULT 0.0, + `estimate` decimal(12,2) unsigned NOT NULL DEFAULT 0.00, + `consumed` decimal(12,2) unsigned NOT NULL DEFAULT 0.00, + `left` decimal(12,2) unsigned NOT NULL DEFAULT 0.00, + `order` tinyint(3) NOT NULL DEFAULT 0, + PRIMARY KEY (`id`), + UNIQUE KEY `team` (`root`,`type`,`account`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_testreport` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `project` mediumint(8) unsigned NOT NULL DEFAULT 0, + `product` mediumint(8) unsigned NOT NULL DEFAULT 0, + `execution` mediumint(8) unsigned NOT NULL DEFAULT 0, + `tasks` varchar(255) NOT NULL DEFAULT '', + `builds` varchar(255) NOT NULL DEFAULT '', + `title` varchar(255) NOT NULL DEFAULT '', + `begin` date DEFAULT NULL, + `end` date DEFAULT NULL, + `owner` char(30) NOT NULL DEFAULT '', + `members` text DEFAULT NULL, + `stories` text DEFAULT NULL, + `bugs` text DEFAULT NULL, + `cases` text DEFAULT NULL, + `report` text DEFAULT NULL, + `objectType` varchar(20) NOT NULL DEFAULT '', + `objectID` mediumint(8) unsigned NOT NULL DEFAULT 0, + `createdBy` char(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_testresult` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `run` mediumint(8) unsigned NOT NULL DEFAULT 0, + `case` mediumint(8) unsigned NOT NULL DEFAULT 0, + `version` smallint(5) unsigned NOT NULL DEFAULT 0, + `job` mediumint(8) unsigned NOT NULL DEFAULT 0, + `compile` mediumint(8) unsigned NOT NULL DEFAULT 0, + `caseResult` char(30) NOT NULL DEFAULT '', + `stepResults` text DEFAULT NULL, + `ZTFResult` text DEFAULT NULL, + `node` int(8) unsigned NOT NULL DEFAULT 0, + `lastRunner` varchar(30) NOT NULL DEFAULT '', + `date` datetime DEFAULT NULL, + `duration` float NOT NULL DEFAULT 0, + `xml` text DEFAULT NULL, + `deploy` mediumint(8) unsigned NOT NULL DEFAULT 0, + PRIMARY KEY (`id`), + KEY `case` (`case`), + KEY `version` (`version`), + KEY `run` (`run`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_testrun` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `task` mediumint(8) unsigned NOT NULL DEFAULT 0, + `case` mediumint(8) unsigned NOT NULL DEFAULT 0, + `version` tinyint(3) unsigned NOT NULL DEFAULT 0, + `assignedTo` char(30) NOT NULL DEFAULT '', + `lastRunner` varchar(30) NOT NULL DEFAULT '', + `lastRunDate` datetime DEFAULT NULL, + `lastRunResult` char(30) NOT NULL DEFAULT '', + `status` char(30) NOT NULL DEFAULT '', + PRIMARY KEY (`id`), + UNIQUE KEY `task` (`task`,`case`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_testsuite` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `project` mediumint(8) unsigned NOT NULL DEFAULT 0, + `product` mediumint(8) unsigned NOT NULL DEFAULT 0, + `name` varchar(255) NOT NULL DEFAULT '', + `desc` mediumtext DEFAULT NULL, + `type` varchar(20) NOT NULL DEFAULT '', + `order` smallint(5) unsigned NOT NULL DEFAULT 0, + `addedBy` char(30) NOT NULL DEFAULT '', + `addedDate` datetime DEFAULT NULL, + `lastEditedBy` char(30) NOT NULL DEFAULT '', + `lastEditedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`), + KEY `product` (`product`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_testtask` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `project` mediumint(8) unsigned NOT NULL DEFAULT 0, + `product` mediumint(8) unsigned NOT NULL DEFAULT 0, + `name` char(90) NOT NULL DEFAULT '', + `execution` mediumint(8) unsigned NOT NULL DEFAULT 0, + `build` char(30) NOT NULL DEFAULT '', + `type` varchar(255) NOT NULL DEFAULT '', + `owner` varchar(30) NOT NULL DEFAULT '', + `pri` tinyint(3) unsigned NOT NULL DEFAULT 0, + `begin` date DEFAULT NULL, + `end` date DEFAULT NULL, + `realBegan` date DEFAULT NULL, + `realFinishedDate` datetime DEFAULT NULL, + `mailto` text DEFAULT NULL, + `desc` mediumtext DEFAULT NULL, + `report` text DEFAULT NULL, + `status` enum('blocked','doing','wait','done') NOT NULL DEFAULT 'wait', + `testreport` mediumint(8) unsigned NOT NULL DEFAULT 0, + `auto` varchar(10) NOT NULL DEFAULT 'no', + `subStatus` varchar(30) NOT NULL DEFAULT '', + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + `members` text DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `product` (`product`), + KEY `build` (`build`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_ticket` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `product` mediumint(8) unsigned NOT NULL DEFAULT 0, + `module` mediumint(8) unsigned NOT NULL DEFAULT 0, + `title` varchar(255) NOT NULL DEFAULT '', + `type` varchar(30) NOT NULL DEFAULT '', + `desc` text DEFAULT NULL, + `openedBuild` varchar(255) NOT NULL DEFAULT '', + `feedback` mediumint(8) NOT NULL DEFAULT 0, + `assignedTo` varchar(255) NOT NULL DEFAULT '', + `assignedDate` datetime DEFAULT NULL, + `realStarted` datetime DEFAULT NULL, + `startedBy` varchar(255) NOT NULL DEFAULT '', + `startedDate` datetime DEFAULT NULL, + `deadline` date DEFAULT NULL, + `pri` tinyint(3) unsigned NOT NULL DEFAULT 0, + `estimate` float unsigned NOT NULL DEFAULT 0, + `left` float unsigned NOT NULL DEFAULT 0, + `status` varchar(30) NOT NULL DEFAULT '', + `openedBy` varchar(30) NOT NULL DEFAULT '', + `openedDate` datetime DEFAULT NULL, + `activatedCount` int(11) NOT NULL DEFAULT 0, + `activatedBy` varchar(30) NOT NULL DEFAULT '', + `activatedDate` datetime DEFAULT NULL, + `closedBy` varchar(30) NOT NULL DEFAULT '', + `closedDate` datetime DEFAULT NULL, + `closedReason` varchar(30) NOT NULL DEFAULT '', + `finishedBy` varchar(30) NOT NULL DEFAULT '', + `finishedDate` datetime DEFAULT NULL, + `resolvedBy` varchar(30) NOT NULL DEFAULT '', + `resolvedDate` datetime DEFAULT NULL, + `resolution` text DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `keywords` varchar(255) NOT NULL DEFAULT '', + `repeatTicket` mediumint(8) NOT NULL DEFAULT 0, + `mailto` varchar(255) NOT NULL DEFAULT '', + `deleted` enum('0','1') NOT NULL DEFAULT '0', + `subStatus` varchar(30) NOT NULL DEFAULT '', + PRIMARY KEY (`id`), + KEY `product` (`product`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_ticketrelation` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `ticketId` mediumint(8) unsigned NOT NULL DEFAULT 0, + `objectId` mediumint(8) NOT NULL DEFAULT 0, + `objectType` varchar(100) NOT NULL DEFAULT '', + PRIMARY KEY (`id`), + KEY `ticketId` (`ticketId`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_ticketsource` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `ticketId` mediumint(8) unsigned NOT NULL DEFAULT 0, + `customer` varchar(100) NOT NULL DEFAULT '', + `contact` varchar(100) NOT NULL DEFAULT '', + `notifyEmail` varchar(100) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `ticketId` (`ticketId`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_todo` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `account` char(30) NOT NULL DEFAULT '', + `date` date DEFAULT NULL, + `begin` smallint(4) unsigned zerofill NOT NULL DEFAULT 0000, + `end` smallint(4) unsigned zerofill NOT NULL DEFAULT 0000, + `feedback` mediumint(8) unsigned NOT NULL DEFAULT 0, + `type` char(15) NOT NULL DEFAULT '', + `cycle` tinyint(3) unsigned NOT NULL DEFAULT 0, + `objectID` mediumint(8) unsigned NOT NULL DEFAULT 0, + `pri` tinyint(3) unsigned NOT NULL DEFAULT 0, + `name` char(150) NOT NULL DEFAULT '', + `desc` mediumtext DEFAULT NULL, + `status` enum('wait','doing','done','closed') NOT NULL DEFAULT 'wait', + `private` tinyint(1) NOT NULL DEFAULT 0, + `config` varchar(1000) NOT NULL DEFAULT '', + `assignedTo` varchar(30) NOT NULL DEFAULT '', + `assignedBy` varchar(30) NOT NULL DEFAULT '', + `assignedDate` datetime DEFAULT NULL, + `finishedBy` varchar(30) NOT NULL DEFAULT '', + `finishedDate` datetime DEFAULT NULL, + `closedBy` varchar(30) NOT NULL DEFAULT '', + `closedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + `vision` varchar(10) NOT NULL DEFAULT 'rnd', + PRIMARY KEY (`id`), + KEY `account` (`account`), + KEY `assignedTo` (`assignedTo`), + KEY `finishedBy` (`finishedBy`), + KEY `date` (`date`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_traincategory` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `name` char(30) NOT NULL DEFAULT '', + `parent` mediumint(8) unsigned NOT NULL DEFAULT 0, + `path` char(255) NOT NULL DEFAULT '', + `grade` tinyint(3) NOT NULL DEFAULT 0, + `order` mediumint(8) NOT NULL DEFAULT 0, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`), + KEY `parent` (`parent`), + KEY `path` (`path`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_traincontents` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `code` varchar(50) NOT NULL DEFAULT '', + `course` mediumint(8) unsigned NOT NULL DEFAULT 0, + `name` varchar(255) NOT NULL DEFAULT '', + `type` varchar(30) NOT NULL DEFAULT '', + `parent` mediumint(8) unsigned NOT NULL DEFAULT 0, + `path` char(255) NOT NULL DEFAULT '', + `desc` text DEFAULT NULL, + `order` mediumint(8) NOT NULL DEFAULT 0, + `createdBy` char(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `deleted` tinyint(1) NOT NULL DEFAULT 0, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_traincourse` ( + `id` mediumint(8) NOT NULL AUTO_INCREMENT, + `code` varchar(255) NOT NULL DEFAULT '', + `category` mediumint(8) NOT NULL DEFAULT 0, + `name` varchar(255) NOT NULL DEFAULT '', + `status` varchar(10) NOT NULL DEFAULT '', + `teacher` varchar(30) NOT NULL DEFAULT '', + `desc` mediumtext DEFAULT NULL, + `importedStatus` enum('','wait','doing','done') NOT NULL DEFAULT '', + `lastUpdatedTime` int(10) unsigned NOT NULL DEFAULT 0, + `createdBy` varchar(255) NOT NULL DEFAULT '', + `createdDate` date DEFAULT NULL, + `editedBy` varchar(255) NOT NULL DEFAULT '', + `editedDate` date DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_trainplan` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `project` mediumint(8) unsigned NOT NULL DEFAULT 0, + `name` varchar(255) NOT NULL DEFAULT '', + `begin` date DEFAULT NULL, + `end` date DEFAULT NULL, + `place` varchar(255) NOT NULL DEFAULT '', + `trainee` text DEFAULT NULL, + `lecturer` varchar(20) NOT NULL DEFAULT '', + `type` enum('inside','outside') NOT NULL DEFAULT 'inside', + `status` varchar(20) NOT NULL DEFAULT '', + `summary` mediumtext DEFAULT NULL, + `createdBy` char(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_trainrecords` ( + `user` char(30) NOT NULL DEFAULT '', + `objectId` mediumint(8) unsigned NOT NULL DEFAULT 0, + `objectType` varchar(10) NOT NULL DEFAULT '', + `status` varchar(10) NOT NULL DEFAULT '', + UNIQUE KEY `object` (`user`,`objectId`,`objectType`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_trip` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `type` enum('trip','egress') NOT NULL DEFAULT 'trip', + `customers` varchar(20) NOT NULL DEFAULT '', + `name` char(30) NOT NULL DEFAULT '', + `desc` text DEFAULT NULL, + `year` char(4) NOT NULL DEFAULT '', + `begin` date DEFAULT NULL, + `end` date DEFAULT NULL, + `start` time DEFAULT NULL, + `finish` time DEFAULT NULL, + `from` char(50) NOT NULL DEFAULT '', + `to` char(50) NOT NULL DEFAULT '', + `createdBy` char(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `year` (`year`), + KEY `createdBy` (`createdBy`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_user` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `company` mediumint(8) unsigned NOT NULL DEFAULT 0, + `type` char(30) NOT NULL DEFAULT 'inside', + `dept` mediumint(8) unsigned NOT NULL DEFAULT 0, + `account` char(30) NOT NULL DEFAULT '', + `password` char(32) NOT NULL DEFAULT '', + `role` char(10) NOT NULL DEFAULT '', + `realname` varchar(100) NOT NULL DEFAULT '', + `superior` char(30) DEFAULT '', + `pinyin` varchar(255) NOT NULL DEFAULT '', + `nickname` char(60) NOT NULL DEFAULT '', + `commiter` varchar(100) NOT NULL DEFAULT '', + `avatar` text DEFAULT NULL, + `birthday` date DEFAULT NULL, + `gender` enum('f','m') NOT NULL DEFAULT 'f', + `email` char(90) NOT NULL DEFAULT '', + `skype` char(90) NOT NULL DEFAULT '', + `qq` char(20) NOT NULL DEFAULT '', + `mobile` char(11) NOT NULL DEFAULT '', + `phone` char(20) NOT NULL DEFAULT '', + `weixin` varchar(90) NOT NULL DEFAULT '', + `dingding` varchar(90) NOT NULL DEFAULT '', + `slack` varchar(90) NOT NULL DEFAULT '', + `whatsapp` varchar(90) NOT NULL DEFAULT '', + `address` char(120) NOT NULL DEFAULT '', + `zipcode` char(10) NOT NULL DEFAULT '', + `nature` text DEFAULT NULL, + `analysis` text DEFAULT NULL, + `strategy` text DEFAULT NULL, + `join` date DEFAULT NULL, + `visits` mediumint(8) unsigned NOT NULL DEFAULT 0, + `visions` varchar(20) NOT NULL DEFAULT 'rnd,lite', + `ip` varchar(255) NOT NULL DEFAULT '', + `last` int(11) unsigned NOT NULL DEFAULT 0, + `fails` tinyint(5) NOT NULL DEFAULT 0, + `locked` datetime DEFAULT NULL, + `feedback` enum('0','1') NOT NULL DEFAULT '0', + `ranzhi` char(30) NOT NULL DEFAULT '', + `ldap` char(30) NOT NULL DEFAULT '', + `score` int(11) NOT NULL DEFAULT 0, + `scoreLevel` int(11) NOT NULL DEFAULT 0, + `resetToken` varchar(50) NOT NULL DEFAULT '', + `deleted` enum('0','1') NOT NULL DEFAULT '0', + `clientStatus` enum('online','away','busy','offline','meeting') NOT NULL DEFAULT 'offline', + `clientLang` varchar(10) NOT NULL DEFAULT 'zh-cn', + PRIMARY KEY (`id`), + UNIQUE KEY `account` (`account`), + KEY `dept` (`dept`), + KEY `email` (`email`), + KEY `commiter` (`commiter`), + KEY `deleted` (`deleted`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_usercontact` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `account` char(30) NOT NULL DEFAULT '', + `listName` varchar(60) NOT NULL DEFAULT '', + `userList` text DEFAULT NULL, + `public` tinyint(1) NOT NULL DEFAULT 0, + PRIMARY KEY (`id`), + KEY `account` (`account`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_usergroup` ( + `account` char(30) NOT NULL DEFAULT '', + `group` mediumint(8) unsigned NOT NULL DEFAULT 0, + `project` text DEFAULT NULL, + UNIQUE KEY `account` (`account`,`group`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_userquery` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `account` char(30) NOT NULL DEFAULT '', + `module` varchar(30) NOT NULL DEFAULT '', + `title` varchar(90) NOT NULL DEFAULT '', + `form` text DEFAULT NULL, + `sql` text DEFAULT NULL, + `shortcut` enum('0','1') NOT NULL DEFAULT '0', + `common` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`), + KEY `account` (`account`), + KEY `module` (`module`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_usertpl` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `account` char(30) NOT NULL DEFAULT '', + `type` char(30) NOT NULL DEFAULT '', + `title` varchar(150) NOT NULL DEFAULT '', + `content` text DEFAULT NULL, + `public` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`), + KEY `account` (`account`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_userview` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `account` char(30) NOT NULL DEFAULT '', + `programs` mediumtext DEFAULT NULL, + `products` mediumtext DEFAULT NULL, + `projects` mediumtext DEFAULT NULL, + `sprints` mediumtext DEFAULT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `account` (`account`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_webhook` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `type` varchar(15) NOT NULL DEFAULT 'default', + `name` varchar(50) NOT NULL DEFAULT '', + `url` varchar(255) NOT NULL DEFAULT '', + `domain` varchar(255) NOT NULL DEFAULT '', + `secret` varchar(255) NOT NULL DEFAULT '', + `contentType` varchar(30) NOT NULL DEFAULT 'application/json', + `sendType` enum('sync','async') NOT NULL DEFAULT 'sync', + `products` text DEFAULT NULL, + `executions` text DEFAULT NULL, + `params` varchar(100) NOT NULL DEFAULT '', + `actions` text DEFAULT NULL, + `desc` text DEFAULT NULL, + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_weeklyreport` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `project` mediumint(8) unsigned NOT NULL DEFAULT 0, + `weekStart` date DEFAULT NULL, + `pv` float(9,2) NOT NULL DEFAULT 0.00, + `ev` float(9,2) NOT NULL DEFAULT 0.00, + `ac` float(9,2) NOT NULL DEFAULT 0.00, + `sv` float(9,2) NOT NULL DEFAULT 0.00, + `cv` float(9,2) NOT NULL DEFAULT 0.00, + `staff` smallint(5) unsigned NOT NULL DEFAULT 0, + `progress` varchar(255) NOT NULL DEFAULT '', + `workload` varchar(255) NOT NULL DEFAULT '', + PRIMARY KEY (`id`), + UNIQUE KEY `week` (`project`,`weekStart`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_workestimation` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `project` mediumint(8) unsigned NOT NULL DEFAULT 0, + `scale` decimal(10,2) unsigned NOT NULL DEFAULT 0.00, + `productivity` decimal(10,2) unsigned NOT NULL DEFAULT 0.00, + `duration` decimal(10,2) unsigned NOT NULL DEFAULT 0.00, + `unitLaborCost` decimal(10,2) unsigned NOT NULL DEFAULT 0.00, + `totalLaborCost` decimal(10,2) unsigned NOT NULL DEFAULT 0.00, + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `assignedTo` varchar(30) NOT NULL DEFAULT '', + `assignedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + `dayHour` decimal(10,2) NOT NULL DEFAULT 0.00, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_workflow` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `group` mediumint(8) unsigned NOT NULL DEFAULT 0, + `parent` varchar(30) NOT NULL DEFAULT '', + `child` varchar(30) NOT NULL DEFAULT '', + `type` varchar(10) NOT NULL DEFAULT 'flow', + `navigator` varchar(10) NOT NULL DEFAULT '', + `app` varchar(20) NOT NULL DEFAULT '', + `position` varchar(30) NOT NULL DEFAULT '', + `module` varchar(30) NOT NULL DEFAULT '', + `table` varchar(50) NOT NULL DEFAULT '', + `name` varchar(30) NOT NULL DEFAULT '', + `icon` varchar(30) NOT NULL DEFAULT 'flow', + `titleField` varchar(30) NOT NULL DEFAULT '', + `contentField` text DEFAULT NULL, + `flowchart` text DEFAULT NULL, + `js` text DEFAULT NULL, + `css` text DEFAULT NULL, + `order` smallint(5) unsigned NOT NULL DEFAULT 0, + `buildin` tinyint(1) unsigned NOT NULL DEFAULT 0, + `role` varchar(10) NOT NULL DEFAULT 'buildin', + `belong` varchar(50) NOT NULL DEFAULT '', + `administrator` text DEFAULT NULL, + `desc` text DEFAULT NULL, + `version` varchar(10) NOT NULL DEFAULT '1.0', + `status` varchar(10) NOT NULL DEFAULT 'wait', + `vision` varchar(10) NOT NULL DEFAULT 'rnd', + `approval` enum('enabled','disabled') NOT NULL DEFAULT 'disabled', + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `unique` (`group`,`app`,`module`,`vision`), + KEY `type` (`type`), + KEY `app` (`app`), + KEY `module` (`module`), + KEY `order` (`order`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_workflowaction` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `group` mediumint(8) unsigned NOT NULL DEFAULT 0, + `module` varchar(30) NOT NULL DEFAULT '', + `action` varchar(50) NOT NULL DEFAULT '', + `method` varchar(50) NOT NULL DEFAULT '', + `name` varchar(50) NOT NULL DEFAULT '', + `type` enum('single','batch') NOT NULL DEFAULT 'single', + `batchMode` enum('same','different') NOT NULL DEFAULT 'different', + `extensionType` varchar(10) NOT NULL DEFAULT 'override', + `open` varchar(20) NOT NULL DEFAULT '', + `position` enum('menu','browseandview','browse','view') NOT NULL DEFAULT 'browseandview', + `layout` char(20) NOT NULL DEFAULT '', + `show` enum('dropdownlist','direct') NOT NULL DEFAULT 'dropdownlist', + `order` smallint(5) unsigned NOT NULL DEFAULT 0, + `buildin` tinyint(1) unsigned NOT NULL DEFAULT 0, + `role` varchar(10) NOT NULL DEFAULT 'custom', + `virtual` tinyint(1) unsigned NOT NULL DEFAULT 0, + `conditions` text DEFAULT NULL, + `verifications` text DEFAULT NULL, + `hooks` text DEFAULT NULL, + `linkages` text DEFAULT NULL, + `js` text DEFAULT NULL, + `css` text DEFAULT NULL, + `toList` char(255) NOT NULL DEFAULT '', + `blocks` text DEFAULT NULL, + `desc` text DEFAULT NULL, + `status` varchar(10) NOT NULL DEFAULT 'enable', + `vision` varchar(10) NOT NULL DEFAULT 'rnd', + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `unique` (`group`,`module`,`action`,`vision`), + KEY `module` (`module`), + KEY `action` (`action`), + KEY `order` (`order`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_workflowdatasource` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `type` enum('system','sql','func','option','lang','category') NOT NULL DEFAULT 'option', + `name` varchar(30) NOT NULL DEFAULT '', + `code` varchar(30) NOT NULL DEFAULT '', + `datasource` text DEFAULT NULL, + `view` varchar(20) NOT NULL DEFAULT '', + `keyField` varchar(50) NOT NULL DEFAULT '', + `valueField` varchar(50) NOT NULL DEFAULT '', + `buildin` tinyint(1) unsigned NOT NULL DEFAULT 0, + `vision` varchar(10) NOT NULL DEFAULT 'rnd', + `createdBy` char(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` char(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `type` (`type`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_workflowfield` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `group` mediumint(8) unsigned NOT NULL DEFAULT 0, + `module` varchar(30) NOT NULL DEFAULT '', + `field` varchar(50) NOT NULL DEFAULT '', + `type` varchar(20) NOT NULL DEFAULT 'varchar', + `length` varchar(10) NOT NULL DEFAULT '', + `name` varchar(50) NOT NULL DEFAULT '', + `control` varchar(20) NOT NULL DEFAULT '', + `expression` text DEFAULT NULL, + `options` text DEFAULT NULL, + `default` varchar(100) NOT NULL DEFAULT '', + `rules` varchar(255) NOT NULL DEFAULT '', + `placeholder` varchar(255) NOT NULL DEFAULT '', + `order` smallint(5) unsigned NOT NULL DEFAULT 0, + `searchOrder` smallint(5) unsigned NOT NULL DEFAULT 0, + `exportOrder` smallint(5) unsigned NOT NULL DEFAULT 0, + `canExport` enum('0','1') NOT NULL DEFAULT '0', + `canSearch` enum('0','1') NOT NULL DEFAULT '0', + `isValue` enum('0','1') NOT NULL DEFAULT '0', + `readonly` enum('0','1') NOT NULL DEFAULT '0', + `buildin` tinyint(1) unsigned NOT NULL DEFAULT 0, + `role` varchar(10) NOT NULL DEFAULT 'custom', + `desc` text DEFAULT NULL, + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `unique` (`group`,`module`,`field`), + KEY `module` (`module`), + KEY `field` (`field`), + KEY `order` (`order`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_workflowgroup` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `type` varchar(10) NOT NULL DEFAULT '', + `projectModel` varchar(10) NOT NULL DEFAULT '', + `projectType` varchar(10) NOT NULL DEFAULT '', + `name` varchar(30) NOT NULL DEFAULT '', + `code` varchar(30) NOT NULL DEFAULT '', + `desc` text DEFAULT NULL, + `disabledModules` varchar(255) NOT NULL DEFAULT '', + `status` varchar(10) NOT NULL DEFAULT 'wait', + `vision` varchar(10) NOT NULL DEFAULT 'rnd', + `main` enum('0','1') NOT NULL DEFAULT '0', + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`), + KEY `type` (`type`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_workflowlabel` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `group` mediumint(8) unsigned NOT NULL DEFAULT 0, + `module` varchar(30) NOT NULL DEFAULT '', + `action` varchar(30) NOT NULL DEFAULT 'browse', + `code` varchar(30) NOT NULL DEFAULT '', + `label` varchar(255) NOT NULL DEFAULT '', + `params` text DEFAULT NULL, + `orderBy` text DEFAULT NULL, + `order` tinyint(3) NOT NULL DEFAULT 0, + `buildin` tinyint(1) unsigned NOT NULL DEFAULT 0, + `role` varchar(10) NOT NULL DEFAULT 'custom', + `createdBy` char(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` char(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `module` (`module`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_workflowlayout` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `group` mediumint(8) unsigned NOT NULL DEFAULT 0, + `module` varchar(30) NOT NULL DEFAULT '', + `action` varchar(50) NOT NULL DEFAULT '', + `ui` mediumint(8) NOT NULL DEFAULT 0, + `field` varchar(50) NOT NULL DEFAULT '', + `order` smallint(5) unsigned NOT NULL DEFAULT 0, + `width` varchar(50) NOT NULL DEFAULT '0', + `position` text DEFAULT NULL, + `readonly` enum('0','1') NOT NULL DEFAULT '0', + `mobileShow` enum('0','1') NOT NULL DEFAULT '1', + `summary` varchar(20) NOT NULL DEFAULT '', + `defaultValue` text DEFAULT NULL, + `layoutRules` varchar(255) NOT NULL DEFAULT '', + `vision` varchar(10) NOT NULL DEFAULT 'rnd', + PRIMARY KEY (`id`), + UNIQUE KEY `unique` (`group`,`module`,`action`,`ui`,`field`,`vision`), + KEY `module` (`module`), + KEY `action` (`action`), + KEY `order` (`order`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_workflowlinkdata` ( + `objectType` varchar(30) NOT NULL DEFAULT '', + `objectID` mediumint(8) unsigned NOT NULL DEFAULT 0, + `linkedType` varchar(30) NOT NULL DEFAULT '', + `linkedID` mediumint(8) unsigned NOT NULL DEFAULT 0, + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + UNIQUE KEY `unique` (`objectType`,`objectID`,`linkedType`,`linkedID`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_workflowrelation` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `prev` varchar(30) NOT NULL DEFAULT '', + `next` varchar(30) NOT NULL DEFAULT '', + `field` varchar(50) NOT NULL DEFAULT '', + `actions` varchar(20) NOT NULL DEFAULT '', + `actionCodes` text DEFAULT NULL, + `buildin` enum('0','1') NOT NULL DEFAULT '0', + `createdBy` char(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_workflowrelationlayout` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `prev` varchar(30) NOT NULL DEFAULT '', + `next` varchar(30) NOT NULL DEFAULT '', + `action` varchar(50) NOT NULL DEFAULT '', + `ui` mediumint(8) NOT NULL DEFAULT 0, + `field` varchar(50) NOT NULL DEFAULT '', + `order` smallint(5) unsigned NOT NULL DEFAULT 0, + PRIMARY KEY (`id`), + UNIQUE KEY `unique` (`prev`,`next`,`action`,`ui`,`field`), + KEY `prev` (`prev`), + KEY `next` (`next`), + KEY `action` (`action`), + KEY `order` (`order`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_workflowreport` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `module` varchar(30) NOT NULL, + `name` varchar(100) NOT NULL, + `type` enum('pie','line','bar') NOT NULL DEFAULT 'pie', + `countType` enum('sum','count') NOT NULL DEFAULT 'sum', + `displayType` enum('value','percent') NOT NULL DEFAULT 'value', + `dimension` varchar(130) NOT NULL, + `fields` text NOT NULL, + `order` smallint(5) unsigned NOT NULL DEFAULT 0, + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_workflowrule` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `type` enum('system','regex','func') NOT NULL DEFAULT 'regex', + `name` varchar(30) NOT NULL DEFAULT '', + `rule` text DEFAULT NULL, + `createdBy` char(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` char(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `type` (`type`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_workflowsql` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `module` varchar(30) NOT NULL DEFAULT '', + `field` varchar(50) NOT NULL DEFAULT '', + `action` varchar(50) NOT NULL DEFAULT '', + `sql` text DEFAULT NULL, + `vars` text DEFAULT NULL, + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `module` (`module`), + KEY `field` (`field`), + KEY `action` (`action`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_workflowui` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `group` mediumint(8) unsigned NOT NULL DEFAULT 0, + `module` varchar(30) NOT NULL, + `action` varchar(50) NOT NULL, + `name` varchar(30) NOT NULL, + `conditions` text DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `module` (`module`), + KEY `action` (`action`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_workflowversion` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `module` varchar(30) NOT NULL DEFAULT '', + `version` varchar(10) NOT NULL DEFAULT '', + `fields` text DEFAULT NULL, + `actions` text DEFAULT NULL, + `layouts` text DEFAULT NULL, + `sqls` text DEFAULT NULL, + `labels` text DEFAULT NULL, + `table` text DEFAULT NULL, + `datas` text DEFAULT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `moduleversion` (`module`,`version`), + KEY `module` (`module`), + KEY `version` (`version`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_zoutput` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `activity` mediumint(8) NOT NULL DEFAULT 0, + `name` varchar(255) NOT NULL DEFAULT '', + `content` mediumtext DEFAULT NULL, + `optional` char(20) NOT NULL DEFAULT '', + `tailorNorm` varchar(255) NOT NULL DEFAULT '', + `status` varchar(30) NOT NULL DEFAULT '', + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `order` mediumint(8) DEFAULT 0, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; diff --git a/db/update21.6.1.sql b/db/update21.6.1.sql index ea92b0ec26..169db5f37a 100644 --- a/db/update21.6.1.sql +++ b/db/update21.6.1.sql @@ -4,4 +4,4 @@ ALTER TABLE `zt_storyspec` ADD COLUMN `docs` text NULL AFTER `files`; ALTER TABLE `zt_storyspec` ADD COLUMN `docVersions` text NULL AFTER `docs`; ALTER TABLE `zt_design` ADD COLUMN `docs` text NULL AFTER `storyVersion`; ALTER TABLE `zt_design` ADD COLUMN `docVersions` text NULL AFTER `docs`; -ALTER TABLE `zt_project` ADD `taskDateLimit` varchar(30) NOT NULL DEFAULT 'auto' AFTER `linkType`; +ALTER TABLE `zt_project` ADD `taskDateLimit` varchar(30) NOT NULL DEFAULT 'auto' AFTER `linkType`; \ No newline at end of file diff --git a/db/update21.7.sql b/db/update21.7.sql new file mode 100644 index 0000000000..35374c8e93 --- /dev/null +++ b/db/update21.7.sql @@ -0,0 +1,53 @@ +DELETE FROM `zt_workflowaction` WHERE `module` = 'story' AND `action` = 'browse'; +DELETE FROM `zt_workflowlayout` WHERE `module` = 'story' AND `action` = 'browse'; + +DELETE FROM `zt_workflowaction` WHERE `module` = 'epic' AND `action` = 'browse'; +DELETE FROM `zt_workflowlayout` WHERE `module` = 'epic' AND `action` = 'browse'; + +DELETE FROM `zt_workflowaction` WHERE `module` = 'requirement' AND `action` = 'browse'; +DELETE FROM `zt_workflowlayout` WHERE `module` = 'requirement' AND `action` = 'browse'; + +UPDATE `zt_workflowaction` SET `module` = 'story', `action` = 'browse' WHERE `module` = 'product' AND `action` = 'browse'; +UPDATE `zt_workflowlayout` SET `module` = 'story', `action` = 'browse' WHERE `module` = 'product' AND `action` = 'browse'; + +UPDATE `zt_workflowaction` SET `module` = 'requirement', `action` = 'browse' WHERE `module` = 'product' AND `action` = 'requirement'; +UPDATE `zt_workflowlayout` SET `module` = 'requirement', `action` = 'browse' WHERE `module` = 'product' AND `action` = 'requirement'; + +UPDATE `zt_workflowaction` SET `module` = 'epic', `action` = 'browse' WHERE `module` = 'product' AND `action` = 'epic'; +UPDATE `zt_workflowlayout` SET `module` = 'epic', `action` = 'browse' WHERE `module` = 'product' AND `action` = 'epic'; + +UPDATE `zt_workflowaction` SET `module` = 'build', `action` = 'browse' WHERE `module` = 'execution' AND `action` = 'build'; +UPDATE `zt_workflowlayout` SET `module` = 'build', `action` = 'browse' WHERE `module` = 'execution' AND `action` = 'build'; + +UPDATE `zt_workflowaction` SET `module` = 'task', `action` = 'browse' WHERE `module` = 'execution' AND `action` = 'task'; +UPDATE `zt_workflowlayout` SET `module` = 'task', `action` = 'browse' WHERE `module` = 'execution' AND `action` = 'task'; + +ALTER TABLE `zt_relationoftasks` ADD COLUMN `project` mediumint(8) unsigned NOT NULL DEFAULT 0 AFTER `id`; +ALTER TABLE `zt_relationoftasks` MODIFY `execution` char(30) NOT NULL DEFAULT '' AFTER `project`; +UPDATE `zt_relationoftasks` SET `project` = (SELECT `project` FROM `zt_task` WHERE `id` = `zt_relationoftasks`.`task`); + +CREATE TABLE IF NOT EXISTS `zt_deliverable` ( + `id` int(8) NOT NULL AUTO_INCREMENT, + `name` varchar(255) NOT NULL, + `module` varchar(30) NULL, + `method` varchar(30) NULL, + `model` text NULL, + `type` enum('doc','file') NULL DEFAULT 'file', + `desc` text NULL, + `files` varchar(255) NULL, + `createdBy` varchar(30) NULL, + `createdDate` date NULL, + `lastEditedBy` varchar(30) NULL, + `lastEditedDate` date NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +ALTER TABLE `zt_workflowgroup` ADD `objectID` mediumint(8) unsigned NOT NULL DEFAULT '0' AFTER `id`; +ALTER TABLE `zt_workflowgroup` ADD COLUMN `deliverable` text NULL AFTER `editedDate`; +ALTER TABLE `zt_project` ADD COLUMN `deliverable` text NULL AFTER `maxColWidth`; + +UPDATE `zt_workflowgroup` SET `name` = '瀑布型产品研发' WHERE `code` = 'waterfallproduct'; +UPDATE `zt_workflowgroup` SET `name` = '瀑布型项目研发' WHERE `code` = 'waterfallproject'; +UPDATE `zt_workflowgroup` SET `name` = '敏捷型产品研发' WHERE `code` = 'scrumproduct'; +UPDATE `zt_workflowgroup` SET `name` = '敏捷型项目研发' WHERE `code` = 'scrumproject'; diff --git a/db/zentao.sql b/db/zentao.sql index 927f52c362..17beef003b 100755 --- a/db/zentao.sql +++ b/db/zentao.sql @@ -578,6 +578,24 @@ CREATE TABLE IF NOT EXISTS `zt_screen` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +-- DROP TABLE IF EXISTS `zt_deliverable`; +CREATE TABLE IF NOT EXISTS `zt_deliverable` ( + `id` int(8) NOT NULL AUTO_INCREMENT, + `name` varchar(255) NOT NULL, + `module` varchar(30) NULL, + `method` varchar(30) NULL, + `model` text NULL, + `type` enum('doc','file') NULL DEFAULT 'file', + `desc` text NULL, + `files` varchar(255) NULL, + `createdBy` varchar(30) NULL, + `createdDate` date NULL, + `lastEditedBy` varchar(30) NULL, + `lastEditedDate` date NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + -- DROP TABLE IF EXISTS `zt_dimension`; CREATE TABLE IF NOT EXISTS `zt_dimension` ( `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, @@ -1596,6 +1614,7 @@ CREATE TABLE IF NOT EXISTS `zt_project` ( `colWidth` smallint(6) NOT NULL DEFAULT '264', `minColWidth` smallint(6) NOT NULL DEFAULT '200', `maxColWidth` smallint(6) NOT NULL DEFAULT '384', + `deliverable` text NULL, `deleted` enum('0','1') NOT NULL DEFAULT '0', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; @@ -13234,6 +13253,7 @@ CREATE INDEX `order` ON `zt_workflow` (`order`); -- DROP TABLE IF EXISTS `zt_workflowgroup`; CREATE TABLE IF NOT EXISTS `zt_workflowgroup` ( `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `objectID` mediumint(8) unsigned NOT NULL DEFAULT '0', `type` varchar(10) NOT NULL DEFAULT '', `projectModel` varchar(10) NOT NULL DEFAULT '', `projectType` varchar(10) NOT NULL DEFAULT '', @@ -13249,6 +13269,7 @@ CREATE TABLE IF NOT EXISTS `zt_workflowgroup` ( `createdDate` datetime NULL, `editedBy` varchar(30) NOT NULL DEFAULT '', `editedDate` datetime NULL, + `deliverable` text NULL, `deleted` enum('0', '1') NOT NULL DEFAULT '0', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; @@ -13527,11 +13548,11 @@ REPLACE INTO `zt_workflowrule`(`type`, `name`, `rule`, `createdBy`, `createdDate ('system','IP','ip','admin','2020-10-14 14:06:14'); INSERT INTO `zt_workflowgroup` (`type`, `projectModel`, `projectType`, `name`, `code`, `status`, `vision`, `main`) VALUES -('product', '', 'project', '默认流程', 'productproject', 'normal', 'rnd', '1'), -('project', 'scrum', 'product', '产品型敏捷项目流程', 'scrumproduct', 'normal', 'rnd', '1'), -('project', 'scrum', 'project', '项目型敏捷项目流程', 'scrumproject', 'normal', 'rnd', '1'), -('project', 'waterfall', 'product', '产品型瀑布项目流程', 'waterfallproduct','normal', 'rnd', '1'), -('project', 'waterfall', 'project', '项目型瀑布项目流程', 'waterfallproject','normal', 'rnd', '1'); +('product', '', 'project', '默认流程', 'productproject', 'normal', 'rnd', '1'), +('project', 'scrum', 'product', '敏捷型产品研发', 'scrumproduct', 'normal', 'rnd', '1'), +('project', 'scrum', 'project', '敏捷型项目研发', 'scrumproject', 'normal', 'rnd', '1'), +('project', 'waterfall', 'product', '瀑布型产品研发', 'waterfallproduct','normal', 'rnd', '1'), +('project', 'waterfall', 'project', '瀑布型项目研发', 'waterfallproject','normal', 'rnd', '1'); INSERT INTO `zt_workflowdatasource` (`type`, `name`, `code`, `buildin`, `vision`, `createdBy`, `createdDate`, `datasource`, `view`, `keyField`, `valueField`) VALUES ('system', '产品', 'products', '1', 'rnd', 'admin', '1970-01-01 00:00:01', '{\"app\":\"system\",\"module\":\"product\",\"method\":\"getPairs\",\"methodDesc\":\"Get product pairs.\",\"params\":[{\"name\":\"mode\",\"type\":\"string\",\"desc\":\"\",\"value\":\"all\"}]}', '', '', ''), diff --git a/doc/CHANGELOG b/doc/CHANGELOG index a593d9d88d..80c89a3c02 100644 --- a/doc/CHANGELOG +++ b/doc/CHANGELOG @@ -1,3 +1,138 @@ +2025-05-30 21.7.1 +完成的需求 +开源版: +74489 在文档编辑器顶部工具栏中打印上传附件按钮 +74488 在文档编辑器顶部工具栏中打印插入图片按钮 +74487 在文档编辑器顶部工具栏中打印超链接按钮 +74486 在文档编辑器顶部工具栏中打印待办事项列表按钮 +74485 在文档编辑器顶部工具栏中打印序号列表项相关的按钮 +74483 批量创建Bug页面增加所属计划字段 +73303 点击文档顶部工具栏中更多按钮,在下拉菜单中打印相关数据 +73293 调整文档中目录、章节和文档的图标和颜色 +73292 调整编辑和浏览文档时的可视区域宽度 +73247 在文档编辑器顶部工具栏中打印文字样式的相关按钮 +73013 在文档编辑器顶部工具栏中打印文字基础格式的相关按钮 +73011 文档顶部固定工具栏中打印插入更多数据的按钮 +73010 实现文档Blocksuite编辑器顶部工具栏常驻显示的组件 +60167 创建Bug页面增加所属计划字段 +14272 导出Bug时增加所属计划字段 +企业版: +74602 项目中支持单独维护单个项目的项目流程 +74439 工作流的流程模板列表不展示项目自定义的流程 +74429 项目中支持配置项目流程 +73561 构建列表动作展示在构建工作流中 +73560 任务列表动作展示在任务工作流中 +73559 业务需求列表动作展示在业务需求工作流中 +73558 用户需求列表动作展示在用户需求工作流中 +73557 研发需求列表动作展示在研发需求工作流中 +63771 工单工作流增加审批设置 +旗舰版: +74722 项目交付物维护页面隐藏创建时的交付物 +74712 隐藏创建项目页面中的交付物组件 +74710 调整交付物配置页面的帮助说明 +74709 交付物配置页面隐藏创建时的交付物列 +74708 后台编辑交付物页面置灰动作字段 +74707 后台添加交付物页面置灰动作字段 +74181 前台提交交付物的相关页面中增加提交文件限制 +74126 编辑已提交付物的独立执行和顶级执行不允许关联父执行 +74125 流程模板中交付物配置改变时不会影响已创建的项目 +74091 后台系统功能配置的通用功能中增加交付物功能开关 +74088 实现项目交付物历史记录功能 +74078 编辑项目页面增加项目流程字段 +74077 编辑已提交交付物的项目时禁用项目模型、项目类型或项目流程字段 +73952 项目流程模板详情的历史记录中记录交付物配置的动态 +73827 实现维护执行交付物的权限配置 +73826 实现维护项目交付物的权限配置 +73824 实现流程模板交付物配置的权限配置 +73822 实现后台交付物配置的权限配置 +73716 实现创建项目页面中的交付物组件 +73671 实现项目交付物维护页面 +73621 实现独立执行和顶级执行交付物维护弹窗 +73616 项目列表支持查看交付物的提交比例 +73607 独立执行和顶级执行列表支持查看交付物的提交比例 +73587 项目菜单打印交付物 +73585 关闭最后一个未关闭的子执行后引导用户关闭顶级执行 +73583 批量关闭执行时提示无法关闭进行中的执行 +73552 实现交付物列表的搜索功能 +73551 实现按标签筛选列表中的交付物 +73549 实现添加交付物页面模板字段的互斥逻辑 +73548 实现交付物页面适用范围下拉菜单与后台阶段类型同步 +73488 调整独立执行和顶级执行的类型导致交付物发生改变时保留已提交的交付物 +73475 关闭进行中的独立执行和顶级执行时支持提交交付物 +73457 关闭进行中的项目时支持提交交付物 +73453 创建项目时支持提交交付物 +73447 交付物配置页打印保存和返回按钮 +73446 交付物配置页始终显示帮助说明 +73445 交付物配置页标题可以依据不同流程模板命名 +73443 交付物配置页支持按对象动作关联交付物 +73442 项目流程模板列表操作列打印交付物配置按钮 +73439 实现删除交付物功能 +73438 实现编辑交付物功能 +73436 实现交付物详情页面 +73429 实现交付物列表页面 +73347 添加交付物页面支持定义交付物的基本信息 +73346 交付物列表页打印添加交付物的按钮 +73329 项目模型配置的通用菜单中打印交付物 +73327 后台模型配置名称调整为项目模型配置 +IPD版: +73927 批量维护阶段页面增加提示语 +修复的Bug +开源版: +62317 创建bug页面完整版表单下控件位置建议优化 +62339 影子产品创建Bug页面简洁版显示了所属计划字段 +62662 需求批量转任务页面工时和优先级同上应该置灰取需求的工时和优先级 +62746 标题内容输入数字时工具栏会一直刷新 +62778 windows一键安装包退出登录报错 +62779 瀑布项目阶段列表页点击编辑按钮,页面报错 +62787 测试单关联用例页面,搜索表单没显示 +62794 全局创建文档页面顶部没有工具栏 +62797 批量修改需求所属计划没有空选项 +62812 任务看板中的卡片不能正常显示 +62813 普通用户无法进行项目的关闭设置 +62817 BUG列表批量编辑修改影响版本会导致BUG关联对象被清空 (Feedback#9383) +62819 批量编辑任务会与最新版本的需求解绑 +62821 设置父子任务时间不符合时,页面显示了提示但是保存成功了 +62823 复制Bug后所属计划不会复制上 +62881 文档中切换禅道数据列表分页数有报错 +企业版: +62725 执行列表中预计消耗剩余展示为空 (Feedback#9327) +62741 父任务的起止日期修改为空,子任务的起止日期字段显示原有日期且置灰 +62766 升级后执行工作流中语言项错误 +62767 执行工作流下执行列表对应的动作显示所有 +62780 编辑项目管理方式,项目流程没有更新 +62788 编辑导出的多人任务后再导入只能导入一条数据 +62795 产品下导入需求报错 +62805 项目开启项目级流程后,编辑项目页面流程还显示原来的 +62811 工作流下自定义流程启用时选择单独启用后流程模板下的该流程也启用了 +62824 编辑项目页面没有根据项目管理方式判断是否显示项目流程字段 +62840 添加透视表使用手动输入SQL查询输入语句点查询报错502 +62842 配置office collabora时填写错误的地址保存有报错 +62855 编辑项目管理方式项目流程错误 +62856 创建 office文档弹窗中权限控制没有修改 +62860 编辑项目时项目流程下拉选项显示了其它项目的项目级流程 +62861 设计透视表报错 +旗舰版: +62733 瀑布项目阶段列表页提交交付物后,保存报错 +62744 关闭进行中的执行页面没有显示交付物组件 +62755 复制瀑布项目完善阶段信息页保存时报错 +62796 安装oceanbase数据库,最后一步有报错 +62802 项目下交付物不能预览和下载 +62804 升级后项目下启用项目流程无法启用 +62806 进入项目下项目流程页面后二级导航的自定义流程不显示了 +62807 windows包项目下选择文档交付物,保存报错 +62810 关闭子阶段,提示去关闭父阶段,实际没跳转到父阶段关闭页面 +62815 创建项目报错 +62818 执行下维护交付物页面保存时报错 +62825 升级后进入项目概况页不显示流程名称 +62827 工作流流程下新建并发布流程后项目流程下未显示该流程 +62829 复制项目时默认带入的项目流程不正确 +62843 交付物数量在列表没显示 +62858 升级后工作流下产品/项目模板列表有报错 +62867 看板项目概况页显示了流程名称 +IPD版: +62731 OR界面调研项目设置阶段报错 +62789 IPD项目下编辑阶段页面阶段类型可编辑 + 2025-05-16 21.7 完成的需求 开源版: diff --git a/framework/base/router.class.php b/framework/base/router.class.php index 0af23871f7..a0323c6a15 100644 --- a/framework/base/router.class.php +++ b/framework/base/router.class.php @@ -3403,7 +3403,11 @@ class baseRouter $fh = fopen($sqlLog, 'a'); fwrite($fh, date('Ymd H:i:s') . ": " . $this->getURI() . "\n"); - foreach(dao::$querys as $query) fwrite($fh, " $query\n"); + foreach(dbh::$queries as $key => $query) + { + fwrite($fh, " $query\n"); + fwrite($fh, ' └' . dbh::$traces[$key] . "\n"); + } fwrite($fh, "\n"); fclose($fh); } diff --git a/framework/control.class.php b/framework/control.class.php index 9d9c7da6ac..8bf985df95 100644 --- a/framework/control.class.php +++ b/framework/control.class.php @@ -527,6 +527,8 @@ class control extends baseControl $flow = $this->loadModel('workflow')->getByModule($moduleName, false, $groupID); if(!$flow) return $fields; + if($groupID && $moduleName == 'project' && $methodName == 'create') $groupID = 0; // 项目创建页面用通用的工作流配置 + $action = $this->loadModel('workflowaction')->getByModuleAndAction($flow->module, $methodName, $groupID); if(!$action || $action->extensionType != 'extend') return $fields; diff --git a/lib/base/dao/dao.class.php b/lib/base/dao/dao.class.php index 759a0bb9da..74b58c4e31 100644 --- a/lib/base/dao/dao.class.php +++ b/lib/base/dao/dao.class.php @@ -1477,15 +1477,7 @@ class baseDAO **/ else { - /* - * 使用$arg0, $arg1... 生成调用的参数。 - * Create the max counts of sql class methods, and then create $arg0, $arg1... - **/ - for($i = 0; $i < SQL::MAX_ARGS; $i ++) - { - ${"arg$i"} = isset($funcArgs[$i]) ? $funcArgs[$i] : null; - } - $this->sqlobj->$funcName($arg0, $arg1, $arg2); + $this->sqlobj->$funcName(...$funcArgs); return $this; } } @@ -1876,11 +1868,13 @@ class baseDAO } if(empty($profiles)) $profiles = $this->query('SHOW PROFILES')->fetchAll(); - foreach($profiles as $profile) + $basePath = $this->app->getBasePath(); + foreach($profiles as $key => $profile) { $profile->Duration = round((float)$profile->Duration, 4); $profile->Explain = []; $profile->Error = ''; + $profile->Code = str_replace($basePath, '', dbh::$traces[$key]); $sql = trim($profile->Query); if(stripos($sql, 'select') !== 0 @@ -1921,6 +1915,21 @@ class baseDAO return $profiles; } + + /** + * 创建临时表。 + * Create temporary table. + * + * @param int $ids 用于创建临时表的 id 列表,字符串或数组。 + * @param bool $filterDuplicate 是否过滤重复的表名,默认值为 true。 + * @param int $limit 用于创建临时表的 id 列表的数量限制,数量小于这个值时不创建临时表,0 表示不限制数量。 + * @access public + * @return false|string + */ + public function createTemporaryTable($idList, $filterDuplicate = true, $limit = 100) + { + return $this->sqlobj->createTemporaryTable($idList, $filterDuplicate, $limit); + } } /** @@ -1947,6 +1956,15 @@ class baseSQL */ public $sql = ''; + /** + * 全局对象$app + * The global app object. + * + * @var object + * @access public + */ + public $app; + /** * 全局变量$dbh。 * The global $dbh. @@ -2073,6 +2091,15 @@ class baseSQL */ public $currentTable; + /** + * 已创建的临时表。 + * The temporary tables. + * + * @var array + * @access public + */ + public $tempTables = []; + /** * 构造方法。 * The construct function. @@ -2082,7 +2109,8 @@ class baseSQL */ public function __construct($table = '') { - global $dbh; + global $app, $dbh; + $this->app = $app; $this->dbh = $dbh; $this->data = new stdclass(); $this->skipFields = ''; @@ -2594,17 +2622,105 @@ class baseSQL * 创建IN部分。 * Create in part. * - * @param string|array $ids ','分割的字符串或者数组 list string by ',' or an array + * @param string|array $ids ','分割的字符串或者数组。List string by ',' or an array. + * @param bool $useTemporaryTable 是否使用临时表。 Use temporary table or not. + * @param bool $filterDuplicate 是否过滤重复的表名,默认值为 true。Filter duplicate table name or not. * @access public * @return static|sql the sql object. */ - public function in($ids) + public function in($ids, $useTemporaryTable = false, $filterDuplicate = true) { if($this->inCondition and !$this->conditionIsTrue) return $this; - $this->sql .= is_null($ids) ? ' IS NULL' : helper::dbIN($ids); + + if(is_null($ids)) + { + $this->sql .= ' IS NULL'; + return $this; + } + + if($useTemporaryTable) + { + $tableName = $this->createTemporaryTable($ids, $filterDuplicate); + if($tableName) + { + $this->sql .= " IN (SELECT id FROM $tableName)"; + return $this; + } + } + + $this->sql .= helper::dbIN($ids); return $this; } + /** + * 创建临时表。 + * Create temporary table. + * + * @param int $ids 用于创建临时表的 id 列表,字符串或数组。 + * @param bool $filterDuplicate 是否过滤重复的表名,默认值为 true。 + * @param int $limit 用于创建临时表的 id 列表的数量限制,数量小于这个值时不创建临时表,0 表示不限制数量。 + * @access public + * @return false|string + */ + public function createTemporaryTable($ids, $filterDuplicate = true, $limit = 100) + { + if(!is_string($ids) && !is_array($ids)) + { + $this->app->triggerError('The idList must be a string or an array.', __FILE__, __LINE__); + return false; + } + + if(is_string($ids)) $ids = explode(',', $ids); + + $idList = []; + foreach($ids as $id) + { + if(empty($id)) continue; + + $intID = (int)$id; + if($intID != $id) continue; + + $idList[$intID] = $intID; + } + + if($limit && count($idList) < $limit) + { + $this->app->triggerError("The idList count must be greater than $limit", __FILE__, __LINE__); + return false; + } + + $tableName = ''; + if($filterDuplicate) + { + /* 如果开启了唯一表名,那么将表名设置为 md5(idList). */ + asort($idList); + $rows = '(' . implode('),(', $idList) . ')'; + $tableName = "temp_" . md5($rows); + + if(isset($this->tempTables[$tableName])) return $tableName; + } + else + { + $tableName = 'temp_' . uniqid(); + $rows = '(' . implode('),(', $idList) . ')'; + } + + try + { + $this->dbh->exec("CREATE TEMPORARY TABLE IF NOT EXISTS {$tableName} (id int PRIMARY KEY)"); + $this->dbh->exec("INSERT INTO {$tableName} VALUES {$rows}"); + } + catch(PDOException $e) + { + $message = $e->getMessage() . ' ' . helper::checkDB2Repair($e); + $this->app->triggerError($message, __FILE__, __LINE__); + } + + if($filterDuplicate) $this->tempTables[$tableName] = $tableName; + + return $tableName; + } + /** * 创建'NOT IN'部分。 * Create not in part. diff --git a/lib/cache/cache.class.php b/lib/cache/cache.class.php index 009970570d..bd49164103 100644 --- a/lib/cache/cache.class.php +++ b/lib/cache/cache.class.php @@ -161,6 +161,7 @@ class cache { $this->app = $app; $this->dao = $app->dao; + $this->dbh = $app->dbh; $this->config = $app->config; if(empty($this->config->cache->enable)) return $this->log('The cache is not enabled', __FILE__, __LINE__); @@ -369,12 +370,13 @@ class cache $objectIdList = $this->cache->get($setCacheKey); if(!is_array($objectIdList)) return; - $objectID = $this->dao->lastInsertID(); + $objectID = $this->dbh->lastInsertID(); if(!$objectID) return $this->log('Failed to fetch last insert id.', __FILE__, __LINE__); /* 获取新增的数据。Get the new data. */ - $object = $this->dao->select('*')->from($this->table)->where('id')->eq($objectID)->fetch(); - if(!$object) return $this->log('Failed to fetch new object. The sql is: ' . $this->dao->get(), __FILE__, __LINE__); + $sql = $this->dao->select('*')->from($this->table)->where('id')->eq($objectID)->get(); + $object = $this->query($sql, 'fetch'); + if(!$object) return $this->log('Failed to fetch new object. The sql is: ' . $sql, __FILE__, __LINE__); /* 把新增的数据保存到缓存中。Save the new data to cache. */ $field = $this->getTableField(); @@ -408,8 +410,9 @@ class cache $objectIdList = array_map(function($object) use ($field) { return $object->$field; }, $this->objects); /* 获取更新后的数据。Get the updated data. */ - $objects = $this->dao->select('*')->from($this->table)->where($field)->in($objectIdList)->fetchAll($field, false); - if(!$objects) return $this->log('Failed to fetch updated objects. The sql is: ' . $this->dao->get(), __FILE__, __LINE__); + $sql = $this->dao->select('*')->from($this->table)->where($field)->in($objectIdList)->get(); + $objects = $this->query($sql, 'fetchAll', $field); + if(!$objects) return $this->log('Failed to fetch updated objects. The sql is: ' . $sql, __FILE__, __LINE__); /* 把更新后的数据保存到缓存中。Save the updated data to cache. */ $values = []; @@ -506,6 +509,28 @@ class cache $this->cache->deleteMultiple($keys); } + /** + * 执行数据库查询操作。 + * Execute database query operation. + * + * @param string $sql SQL语句。 + * @param string $function 查询函数。 + * @param string $field 字段名。 + * @access private + * @return array|object + */ + private function query($sql, $function = 'fetchAll', $field = ''): array|object + { + $rows = $this->dao->query($sql)->$function(); + if($function == 'fetchAll' && !empty($field)) + { + $objects = []; + foreach($rows as $row) $objects[$row->$field] = $row; + return $objects; + } + return $rows; + } + /** * 检查表是否有缓存设置。 * Check if the table has cache settings. @@ -583,7 +608,8 @@ class cache private function initTableCache(): array { $field = $this->getTableField(); - $objects = $this->dao->select('*')->from($this->table)->fetchAll($field, false); + $sql = $this->dao->select('*')->from($this->table)->get(); + $objects = $this->query($sql, 'fetchAll', $field); if(!$objects) return []; $values = []; @@ -693,7 +719,8 @@ class cache { $lostObjects = []; $diffIdList = array_keys(array_diff($keys, array_keys($objects))); - $diffObjects = $this->dao->select('*')->from($table)->where('id')->in($diffIdList)->fetchAll('', false); + $sql = $this->dao->select('*')->from($table)->where('id')->in($diffIdList)->get(); + $diffObjects = $this->query($sql, 'fetchAll'); foreach($diffObjects as $object) { $rawCacheKey = $this->getRawCacheKey($code, $object->id); @@ -757,18 +784,29 @@ class cache $field = $this->getTableField(); $dao = $this->dao->select($field)->from($table)->where('1=1'); foreach($conditions as $condition) $dao->andWhere($condition['field'])->eq($condition['value']); - $idList = array_values($dao->fetchPairs()); + $sql = $dao->get(); + $objects = $this->query($sql, 'fetchAll'); + foreach($objects as $object) $idList[] = $object->$field; $this->saveByKey($cacheKey, $idList); /* 把缓存键写入数据库以便执行 dao::exec() 时自动更新。Write the cache key to the database for automatic update when executing dao::exec(). */ $fields = implode(',', array_column($conditions, 'field')); - $autoCache = $this->dao->select('1')->from(TABLE_AUTOCACHE)->where('code')->eq($code)->andWhere('fields')->eq($fields)->fetch(); + $sql = $this->dao->select('1')->from(TABLE_AUTOCACHE)->where('code')->eq($code)->andWhere('fields')->eq($fields)->get(); + $autoCache = $this->query($sql, 'fetch'); if(!$autoCache) { $autoCache = new \stdClass(); $autoCache->code = $code; $autoCache->fields = $fields; - $this->dao->insert(TABLE_AUTOCACHE)->data($autoCache)->exec(); + $sql = $this->dao->insert(TABLE_AUTOCACHE)->data($autoCache)->get(); + try + { + $this->dbh->exec($sql); + } + catch(PDOException $e) + { + $this->dao->sqlError($e); + } } } if(!$idList) return []; @@ -980,7 +1018,8 @@ class cache /* 执行操作后数据已经被修改,所以需要提前获取被影响的数据。*/ $field = $this->getTableField(); - $objects = $this->dao->select('*')->from($table)->beginIF($where)->where($where)->fi()->fetchAll($field, false); + $sql = $this->dao->select('*')->from($table)->beginIF($where)->where($where)->fi()->get(); + $objects = $this->query($sql, 'fetchAll', $field); $this->setWhere($where); $this->setObjects($objects); @@ -1046,4 +1085,4 @@ class cache { return $this->cache->memory($type); } -} +} \ No newline at end of file diff --git a/lib/dbh/dbh.class.php b/lib/dbh/dbh.class.php index 5eb89cb63f..93088ffc67 100644 --- a/lib/dbh/dbh.class.php +++ b/lib/dbh/dbh.class.php @@ -59,6 +59,24 @@ class dbh */ private $sql; + /** + * 这是用来记录SQL执行的文件和行号。 + * This is used to record the file and line number where the SQL was executed. + * + * @var array + * @access public + */ + public static $traces = []; + + /** + * 执行的请求,所有的查询都保存在该数组。 + * The queries executed. Every query will be saved in this array. + * + * @var array + * @access public + */ + public static $queries = []; + /** * Constructor * @@ -81,15 +99,25 @@ class dbh $pdo->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_OBJ); $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); + $queries = []; /* Mysql driver include mysql and oceanbase. */ if($driver == 'mysql') { - $pdo->exec("SET NAMES {$config->encoding}"); - if(isset($config->strictMode) and $config->strictMode == false) $pdo->exec("SET @@sql_mode= ''"); + $queries[] = "SET NAMES {$config->encoding}"; + if(isset($config->strictMode) && empty($config->strictMode)) $queries[] = "SET @@sql_mode= ''"; } else if($setSchema) { - $pdo->exec("SET SCHEMA {$config->name}"); + $queries[] = "SET SCHEMA {$config->name}"; + } + if(!empty($queries)) + { + foreach($queries as $query) + { + $pdo->exec($query); + dbh::$traces[] = 'vim +' . (__LINE__ - 1) . ' ' . __FILE__; + dbh::$queries[] = "[$flag] " . $query; + } } $this->pdo = $pdo; @@ -120,6 +148,8 @@ class dbh */ public function exec($sql) { + $this->trace(); + $sql = $this->formatSQL($sql); if(!$sql) return true; @@ -127,7 +157,7 @@ class dbh try { - if(class_exists('dao')) dao::$querys[] = "[$this->flag] " . dao::processKeywords($sql); + dbh::$queries[] = "[$this->flag] " . dao::processKeywords($sql); return $this->pdo->exec($sql); } catch(PDOException $e) @@ -146,10 +176,12 @@ class dbh */ public function query($sql) { + $this->trace(); + $sql = $this->formatSQL($sql); try { - if(class_exists('dao')) dao::$querys[] = "[$this->flag] " . dao::processKeywords($sql); + dbh::$queries[] = "[$this->flag] " . dao::processKeywords($sql); return $this->pdo->query($sql); } catch(PDOException $e) @@ -191,6 +223,8 @@ class dbh */ public function execute($sql, $params) { + $this->trace(); + $this->statement = $this->prepare($sql); try @@ -214,9 +248,11 @@ class dbh */ public function rawQuery($sql) { + $this->trace(); + try { - if(class_exists('dao')) dao::$querys[] = "[$this->flag] " . dao::processKeywords($sql); + dbh::$queries[] = "[$this->flag] " . dao::processKeywords($sql); return $this->pdo->query($sql); } catch(PDOException $e) @@ -225,6 +261,63 @@ class dbh } } + /** + * 记录当前执行的 SQL 的文件和行号。 + * Record the file and line number of the currently executed SQL. + * + * @access private + * @return bool + */ + private function trace() + { + global $app, $config; + if(empty($config->debug) || $config->debug < 3) return false; + if(!is_null($app)) + { + if(!empty($app->installing) || !empty($app->upgrading)) return false; + if(!isset($config->installed) || !$config->installed) return false; + } + + $trace = $this->getTrace(); + if(empty($trace)) return false; + + $file = $trace['file']; + $line = $trace['line']; + + dbh::$traces[] = "vim +$line $file"; + + return true; + } + + /** + * 获取当前执行的 SQL 的调用栈信息。 + * Get the call stack information of the currently executed SQL. + * + * @access private + * @return array + */ + private function getTrace() + { + $traces = array_reverse(debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS)); + foreach($traces as $key => $trace) + { + $class = $trace['class'] ?? ''; + $function = $trace['function'] ?? ''; + if($class == 'settingModel' && strpos(',getItem,getItems,setItem,setItems,updateItem,deleteItems,', ",$function,") !== false) return $trace; + if($class == 'baseDAO' && strpos(',exec,fetch,fetchPairs,fetchGroup,explain,showTables,getTableEngines,descTable,', ",$function,") !== false) return $trace; + if($class == 'baseDAO' && $function == 'getProfiles') return $traces[$key + 1]; + if($class == 'baseDAO' && $function == 'fetchAll') + { + if($traces[$key + 1]['class'] == 'baseDAO' && $traces[$key + 1]['function'] == 'extractSQLFields') return $traces[$key + 2]; + return $trace; + } + if($class == 'baseDAO' && stripos($function, 'findBy') === 0) return $trace; + if($class == 'baseRouter' && $function == 'dbQuery') return $trace; + if($class == 'dbh' && strpos('exec,query,rawQuery', $function) !== false) return $trace; + } + return []; + } + /** * Set attribute. * diff --git a/lib/trace/trace.class.php b/lib/trace/trace.class.php index 974b988987..4fdbedad30 100644 --- a/lib/trace/trace.class.php +++ b/lib/trace/trace.class.php @@ -43,7 +43,7 @@ class trace 'method' => $this->app->server->request_method, 'timeUsed' => round(getTime() - $this->app->startTime, 4) * 1000, 'memory' => round(memory_get_peak_usage() / 1024, 1), - 'querys' => count(dao::$querys), + 'querys' => count(dbh::$queries), 'caches' => 0, 'files' => count(get_included_files()), 'session' => session_id(), @@ -70,7 +70,7 @@ class trace */ public function getRequestSqls() { - $this->trace['sqlQuery'] = dao::$querys; + $this->trace['sqlQuery'] = dbh::$queries; } /** diff --git a/lib/zin/func.php b/lib/zin/func.php index 469d0979a9..e651f5237a 100644 --- a/lib/zin/func.php +++ b/lib/zin/func.php @@ -249,6 +249,7 @@ function iconPicker(): iconPicker {return createWg('iconPicker', func_get_args() function relatedObjectList(): relatedObjectList {return createWg('relatedObjectList', func_get_args());} function taskAssignedTo(): taskAssignedTo {return createWg('taskAssignedTo', func_get_args());} function docList(): docList {return createWg('docList', func_get_args());} +function deliverable(): deliverable {return createWg('deliverable', func_get_args());} if(is_dir(__DIR__ . DS . 'wg' . DS . 'schedule')) { @@ -258,4 +259,4 @@ if(is_dir(__DIR__ . DS . 'wg' . DS . 'schedule')) if(is_dir(__DIR__ . DS . 'wg' . DS . 'boardeditor')) { function boardEditor(): boardEditor {return createWg('boardeditor', func_get_args());} -} +} \ No newline at end of file diff --git a/lib/zin/wg/backbtn/v1.php b/lib/zin/wg/backbtn/v1.php index 5b20fca7ac..0f67b0e291 100644 --- a/lib/zin/wg/backbtn/v1.php +++ b/lib/zin/wg/backbtn/v1.php @@ -96,7 +96,9 @@ class backBtn extends btn 'approvalflow' => 'approvalflow-browse', 'host' => 'host-browse,my-index', 'deploy' => 'deploy-browse', - 'program' => 'program-browse,program-productview' + 'program' => 'program-browse,program-productview', + 'workflowgroup' => 'workflowgroup-project,workflowgroup-deliverable', + 'deliverable' => 'deliverable-browse' ); $props = parent::getProps(); diff --git a/lib/zin/wg/deliverable/css/v1.css b/lib/zin/wg/deliverable/css/v1.css new file mode 100644 index 0000000000..43d93b3dd3 --- /dev/null +++ b/lib/zin/wg/deliverable/css/v1.css @@ -0,0 +1 @@ +.deliverable-item {padding-left: 3.5rem !important} diff --git a/lib/zin/wg/deliverable/js/v1.js b/lib/zin/wg/deliverable/js/v1.js new file mode 100644 index 0000000000..8649ce15b1 --- /dev/null +++ b/lib/zin/wg/deliverable/js/v1.js @@ -0,0 +1,44 @@ +/** + * 获取附件的操作按钮。 + * Get file actions. + */ +window.getDeliverableFileActions = function(file, deliverable) +{ + let actions = []; + if(canDownload && typeof file.id != 'undefined') actions[0] = {icon: 'download', key: 'download', url: $.createLink('file', 'download', 'id=' + file.id), target: '_blank'}; + actions[1] = {icon: 'edit', key: 'rename'}; + actions[2] = {icon: 'trash', key: 'delete'}; + + /* 可以预览的文件。 */ + if(['txt', 'jpg', 'jpeg', 'gif', 'png', 'bmp', 'mp4'].includes(file.extension) && canDownload && typeof file.id != 'undefined') + { + actions[3] = {icon: 'eye', key: 'view', url: $.createLink('file', 'download', `fileID=${file.id}&mouse=left`), 'data-toggle' : 'modal', 'data-size' : 'lg'}; + } + + return actions; +} + +/** + * 获取文档的操作按钮。 + * Get file actions. + */ +window.getDocActions = function(doc, deliverable) +{ + let actions = []; + actions[0] = {icon: 'eye', key: 'view', url: $.createLink('doc', 'view', 'docID=' + doc.id)}; + actions[1] = {icon: 'edit', key: 'rename'}; + actions[2] = {icon: 'trash', key: 'delete'}; + return actions; +} + +/** + * 获取交付物的操作按钮。 + * Get deliverable actions. + */ +window.getDeliverableActions = function(deliverable) +{ + let actions = []; + actions[0] = {text: addFile, icon: 'file', key: 'selectFile'}; + if(deliverable.template > 0 && canDownload) actions[1] = {text: downloadTemplate, icon: 'download', key: 'downloadTemplate', url: $.createLink('file', 'download', 'templateID=' + deliverable.template), target: '_blank'}; + return actions; +} diff --git a/lib/zin/wg/deliverable/v1.php b/lib/zin/wg/deliverable/v1.php new file mode 100644 index 0000000000..4cb45d5557 --- /dev/null +++ b/lib/zin/wg/deliverable/v1.php @@ -0,0 +1,91 @@ +loadLang('doc'); + $app->loadLang('file'); + jsVar('addFile', $lang->doc->addFile); + jsVar('downloadTemplate', $lang->doc->downloadTemplate); + jsVar('deleteItem', $lang->delete); + jsVar('canDownload', hasPriv('file', 'download')); + + return file_get_contents(__DIR__ . DS . 'js' . DS . 'v1.js'); + } + + /** + * 获取CSS。 + * Get page CSS. + * + * @static + * @access public + * @return string + */ + public static function getPageCSS(): ?string + { + return file_get_contents(__DIR__ . DS . 'css' . DS . 'v1.css'); + } + + /** + * 构建组件。 + * Build. + * + * @access protected + * @return zui + */ + protected function build(): zui + { + global $lang, $app; + $app->loadLang('doc'); + $app->loadLang('file'); + + $formName = $this->prop('formName') ? $this->prop('formName') : 'deliverable'; + + if(!$this->hasProp('maxFileSize')) + { + $maxFileSize = ini_get('upload_max_filesize'); + $lastChar = substr($maxFileSize, -1); + $fileSizeUnit = array('K', 'M', 'G', 'T'); + if(in_array($lastChar, $fileSizeUnit)) $maxFileSize .= 'B'; + $this->setProp('maxFileSize', $maxFileSize); + } + + return zui::deliverableList + ( + set::formName($formName), + set::items($this->prop('items')), + set::docPicker(array('placeholder' => $lang->doc->selectDoc, 'items' => helper::createLink('doc', 'ajaxGetMineDocs', 'keyword={search}'))), + set::getFileActions(jsRaw('window.getDeliverableFileActions')), + set::getDocActions(jsRaw('window.getDocActions')), + set::getEmptyActions(jsRaw('window.getDeliverableActions')), + set::maxFileSize($this->prop('maxFileSize')), + set::extraCategory($lang->other) + ); + } +} diff --git a/lib/zin/wg/docapp/js/v1.js b/lib/zin/wg/docapp/js/v1.js index 4d9bd859e2..390ce93628 100644 --- a/lib/zin/wg/docapp/js/v1.js +++ b/lib/zin/wg/docapp/js/v1.js @@ -1135,10 +1135,11 @@ const actionsMap = const doc = info.doc; const file = info.data; const docApp = getDocApp(); + const isReadonly = docApp.mode === 'view'; const privs = docApp.props.privs; const lang = getLang(); - const canEdit = privs.edit && (!doc.privs || doc.privs.edit !== false) && privs.editFile; - const canDelete = privs.edit && (!doc.privs || doc.privs.edit !== false) && privs.deleteFile; + const canEdit = !isReadonly && privs.edit && (!doc.privs || doc.privs.edit !== false) && privs.editFile; + const canDelete = !isReadonly && privs.edit && (!doc.privs || doc.privs.edit !== false) && privs.deleteFile; const hasExtension = file.title.lastIndexOf('.' + file.extension) == (file.title.length - file.extension.length - 1); const canPreview = hasExtension && 'mp4,txt,jpg,jpeg,gif,png,bmp'.split(',').includes(file.extension); return [ @@ -2091,6 +2092,34 @@ function getSpaceFetcher(spaceType, spaceID = 0) } } +function initOfficePreview(options) +{ + const officeTypes = new Set(['doc', 'docx', 'xls', 'xlsx', 'ppt', 'pptx', 'pdf']); + zui.Editor.setGlobalConfig( + { + canPreviewFile: (file) => { + const extension = file.name.split('.').pop(); + return officeTypes.has(extension); + }, + onPreviewFile: (file) => { + const doc = getDocApp().doc || {data: {id: 0}}; + $.getJSON(zui.formatString(options.fileInfoUrl, { + gid: btoa(`g-${file.key}`), + objectType: 'doc', + objectID: doc.data.id, + title: '', + extra: '', + })).then(res => { + if(res.result === 'success' && res.data) + { + const editable = doc.data.editable !== false; + window.open($.createLink('file', 'download', `fileID=${res.data.id}&mouse=left&edit=${editable ? '0' : 'never'}`), '_blank'); + } + }); + } + }); +} + /** * 设置文档应用组件选项。 * Set the doc app options. @@ -2102,6 +2131,8 @@ window.setDocAppOptions = function(_, options) userPrivs = options.privs; docLangData = options.langData; + if(options.canPreviewOffice && options.fileInfoUrl) initOfficePreview(options); + return $.extend( { defaultState : {listType: '', libReleaseMap: {}}, diff --git a/lib/zin/wg/docapp/v1.php b/lib/zin/wg/docapp/v1.php index 22fca67279..e5f9e1b3a5 100644 --- a/lib/zin/wg/docapp/v1.php +++ b/lib/zin/wg/docapp/v1.php @@ -144,6 +144,7 @@ class docApp extends wg $libSummariesFetcher = createLink('doc', 'ajaxGetLibSummaries', 'spaceType={spaceType}&spaceList={spaceList}'); $uploadUrl = createLink('file', 'ajaxUpload', 'uid={uid}&objectType={objectType}&objectID={objectID}&extra={extra}&field={field}&api={api}&gid={gid}'); $downloadUrl = createLink('file', 'ajaxQuery', 'fileID={gid}&objectType={objectType}&objectID={objectID}&title={title}&extra={extra}'); + $fileInfoUrl = createLink('file', 'ajaxQuery', 'fileID={gid}&objectType={objectType}&objectID={objectID}&title={title}&extra={extra}', 'json'); /** * 定义文档界面上的文件下载链接。 @@ -269,6 +270,7 @@ class docApp extends wg } $historyPanelProps = array('fileListProps' => $fileListProps); + $canPreviewOffice = $canDownload && isset($config->file->libreOfficeTurnon) and $config->file->libreOfficeTurnon == 1; return zui::docApp ( @@ -312,6 +314,9 @@ class docApp extends wg set::viewModeUrl($viewModeUrl), set::langData($langData), set::historyPanel($historyPanelProps), + set::showToolbar(true), + set::canPreviewOffice($canPreviewOffice), + set::fileInfoUrl($fileInfoUrl), jsCall('setZentaoSlashMenu', $this->getZentaoListMenu(), $lang->doc->zentaoData, $config->vision, $config->doc->zentaoListMenuPosition) ); } diff --git a/lib/zin/wg/doclist/v1.php b/lib/zin/wg/doclist/v1.php index 74cc0e96d8..76a77a579c 100644 --- a/lib/zin/wg/doclist/v1.php +++ b/lib/zin/wg/doclist/v1.php @@ -51,7 +51,7 @@ class docList extends wg setClass('docItem flex items-center py-1'), span(setClass('mr-4 p-1 docTitle'), icon(setClass('mr-2'), 'file-text'), $link), div(setClass('w-24'), $mode == 'edit' ? picker(set::required(true), set::name("docVersions[$docID]"), set::items($oldDocVersions[$docID]), set::value($data->docVersions[$docID])) : "#{$data->docVersions[$docID]}"), - $mode == 'edit' && $oldDocs[$docID]->version != $data->docVersions[$docID] ? label(setClass('ml-2 warning'), $lang->task->docSyncTips) : null, + $mode == 'edit' && $oldDocs[$docID]->version != $data->docVersions[$docID] ? label(setClass('ml-2 warning w-80'), $lang->task->docSyncTips) : null, $mode == 'edit' ? input(setClass('hidden'), set::name("oldDocs[$docID]"), set::value($docID)) : null, $mode == 'edit' ? btn(setClass('ghost ml-2'), icon('trash'), setData(array('on' => 'click', 'call' => 'window.removeDocs', 'params' => 'event'))) : null ); @@ -70,7 +70,7 @@ class docList extends wg set::multiple(true), set::maxItemsCount(50), set::menu(array('checkbox' => true)), - !empty($items) ? set::toolbar(true) : null + !empty($docs) ? set::toolbar(true) : null ) : null, div(setClass('mt-2'), $docBox) ); diff --git a/lib/zin/wg/dropmenu/css/v1.css b/lib/zin/wg/dropmenu/css/v1.css index a1308d5d1a..9904ddbb1d 100644 --- a/lib/zin/wg/dropmenu/css/v1.css +++ b/lib/zin/wg/dropmenu/css/v1.css @@ -1,4 +1,4 @@ -#pick-pop-admin-menu {width: 139px!important;} +#pick-pop-admin-menu {width: 145px!important;} #pick-pop-admin-menu .dropmenu-list {padding: 8px;} #pick-pop-admin-menu .dropmenu-item + .dropmenu-item {margin-top: 4px} #pick-pop-admin-menu .dropmenu-item.active {background-color: unset;} diff --git a/lib/zin/wg/monaco/css/v1.css b/lib/zin/wg/monaco/css/v1.css index 0d9b84fee0..8533efe6c4 100644 --- a/lib/zin/wg/monaco/css/v1.css +++ b/lib/zin/wg/monaco/css/v1.css @@ -3,5 +3,3 @@ /* 半透明黄色 */ .monaco-editor .yellow-decoration {background-color: rgba(255, 255, 0, 0.2);} - -.monaco-editor .margin .line-numbers {padding-left: 16px;} diff --git a/lib/zin/wg/monaco/js/v1.js b/lib/zin/wg/monaco/js/v1.js index 24851083a8..ee7e32cb32 100644 --- a/lib/zin/wg/monaco/js/v1.js +++ b/lib/zin/wg/monaco/js/v1.js @@ -154,7 +154,7 @@ function resize(id) mainMenuHeight = mainMenuHeight ? mainMenuHeight : 0; mainNavbar = mainNavbar ? mainNavbar : 0; - var codeHeight = windowHeight - headerHeight - appsBarHeight - tabsHeight - appTabsHeight - mainMenuHeight - mainNavbar; + var codeHeight = windowHeight - headerHeight - appsBarHeight - tabsHeight - appTabsHeight - mainMenuHeight - mainNavbar; if(codeHeight > 0) $.cookie.set(id + 'Height', codeHeight); diff --git a/lib/zin/wg/stepseditor/js/v1.js b/lib/zin/wg/stepseditor/js/v1.js index 0cf87e343c..80ab9b466f 100644 --- a/lib/zin/wg/stepseditor/js/v1.js +++ b/lib/zin/wg/stepseditor/js/v1.js @@ -291,7 +291,8 @@ class StepsEditor extends zui.Component { const options = this.options; let $row = $rows.filter(`[data-id="${item.id}"]`); - if(!$row.length) $row = this._createRow(item, options); + let isNew = !$row.length; + if(isNew) $row = this._createRow(item, options); if($preRow) $row.insertAfter($preRow); else $list.prepend($row); @@ -303,20 +304,22 @@ class StepsEditor extends zui.Component .toggleClass('has-children', hasSub) .toggleClass('no-child', !hasSub) .removeClass('is-expired'); - $row.css('--name-indent', `${(item.level - 1) * 14}px`).find('.steps-editor-step-name').css('width', item.name.length * 12).text(item.name).css('paddingLeft', (item.level - 1) * 14); - $row.find('.steps-editor-step-text').attr('name', `${options.name}[${item.name}]`); - $row.find('.steps-editor-step-type').attr('name', `stepType[${item.name}]`).val(hasSub ? 'group' : (!!item.parent && item.parent != '0' ? 'item' : 'step')); - if(options.postDataID) $row.find('.steps-editor-post-data-id').attr('name', `id[${item.name}]`); - const $expect = $row.find('.steps-editor-step-expect').attr( - { - name: `${options.expectsName}[${item.name}]`, - disabled: hasSub && options.expectDisabled ? 'disabled' : null - }).toggleClass('disabled', hasSub && options.expectDisabled); - $expect.parent().toggleClass('disabled', hasSub && options.expectDisabled); - $row.find('.steps-editor-col-delete .btn').toggleClass('disabled', hasSub || this._items.length == 1); - $row.find('.steps-editor-col-delete .btn.disabled').attr('title', options.deleteStepTip); - $row.find('.steps-editor-col-add .btn-action[data-action="sub"]').toggleClass('disabled', item.level >= 3); - $row.find('textarea').autoHeight(); + requestAnimationFrame(() => { + $row.css('--name-indent', `${(item.level - 1) * 14}px`).find('.steps-editor-step-name').css('width', item.name.length * 12).text(item.name).css('paddingLeft', (item.level - 1) * 14); + $row.find('.steps-editor-step-text').attr('name', `${options.name}[${item.name}]`); + $row.find('.steps-editor-step-type').attr('name', `stepType[${item.name}]`).val(hasSub ? 'group' : (!!item.parent && item.parent != '0' ? 'item' : 'step')); + if(options.postDataID) $row.find('.steps-editor-post-data-id').attr('name', `id[${item.name}]`); + const $expect = $row.find('.steps-editor-step-expect').attr( + { + name: `${options.expectsName}[${item.name}]`, + disabled: hasSub && options.expectDisabled ? 'disabled' : null + }).toggleClass('disabled', hasSub && options.expectDisabled); + $expect.parent().toggleClass('disabled', hasSub && options.expectDisabled); + $row.find('.steps-editor-col-delete .btn').toggleClass('disabled', hasSub || this._items.length == 1); + $row.find('.steps-editor-col-delete .btn.disabled').attr('title', options.deleteStepTip); + $row.find('.steps-editor-col-add .btn-action[data-action="sub"]').toggleClass('disabled', item.level >= 3); + if(isNew) $row.find('textarea').autoHeight({fast: true}); + }); return $row; } diff --git a/module/action/config.php b/module/action/config.php index 9899981166..1c26be3a42 100755 --- a/module/action/config.php +++ b/module/action/config.php @@ -71,6 +71,7 @@ $config->action->objectNameFields['prompt'] = 'name'; $config->action->objectNameFields['miniprogram'] = 'name'; $config->action->objectNameFields['holiday'] = 'name'; $config->action->objectNameFields['system'] = 'name'; +$config->action->objectNameFields['deliverable'] = 'name'; $config->action->commonImgSize = 870; diff --git a/module/action/lang/de.php b/module/action/lang/de.php index 17418cb670..40f0be5363 100644 --- a/module/action/lang/de.php +++ b/module/action/lang/de.php @@ -191,6 +191,7 @@ $lang->action->objectTypes['board'] = 'Board'; $lang->action->objectTypes['boardspace'] = 'Board Space'; $lang->action->objectTypes['productline'] = 'Product Line'; $lang->action->objectTypes['system'] = $lang->product->system; +$lang->action->objectTypes['deliverable'] = 'Deliverable'; /* Used to describe operation history. */ $lang->action->desc = new stdclass(); @@ -937,6 +938,7 @@ $lang->action->label->instance = 'Application|instance|view|id=%s'; $lang->action->label->prompt = 'Prompt|ai|promptview|id=%s'; $lang->action->label->miniprogram = 'Mini Program|aiapp|browseminiprogram|id=%s'; $lang->action->label->holiday = 'Holiday|holiday|browse|'; +$lang->action->label->deliverable = 'Deliverable|deliverable|view|id=%s'; /* Object type. */ $lang->action->search = new stdclass(); diff --git a/module/action/lang/en.php b/module/action/lang/en.php index bc5d4af4ea..5860a6b5fd 100755 --- a/module/action/lang/en.php +++ b/module/action/lang/en.php @@ -191,6 +191,7 @@ $lang->action->objectTypes['board'] = 'Board'; $lang->action->objectTypes['boardspace'] = 'Board Space'; $lang->action->objectTypes['productline'] = 'Product Line'; $lang->action->objectTypes['system'] = $lang->product->system; +$lang->action->objectTypes['deliverable'] = 'Deliverable'; /* Used to describe operation history. */ $lang->action->desc = new stdclass(); @@ -937,6 +938,7 @@ $lang->action->label->instance = 'Application|instance|view|id=%s'; $lang->action->label->prompt = 'Prompt|ai|promptview|id=%s'; $lang->action->label->miniprogram = 'Mini Program|aiapp|browseminiprogram|id=%s'; $lang->action->label->holiday = 'Holiday|holiday|browse|'; +$lang->action->label->deliverable = 'Deliverable|deliverable|view|id=%s'; /* Object type. */ $lang->action->search = new stdclass(); diff --git a/module/action/lang/fr.php b/module/action/lang/fr.php index 5fce10c0f7..61ee3a5353 100644 --- a/module/action/lang/fr.php +++ b/module/action/lang/fr.php @@ -191,6 +191,7 @@ $lang->action->objectTypes['board'] = 'Board'; $lang->action->objectTypes['boardspace'] = 'Board Space'; $lang->action->objectTypes['productline'] = 'Product Line'; $lang->action->objectTypes['system'] = $lang->product->system; +$lang->action->objectTypes['deliverable'] = 'Deliverable'; /* Used to describe operation history. */ $lang->action->desc = new stdclass(); @@ -937,6 +938,7 @@ $lang->action->label->instance = 'Application|instance|view|id=%s'; $lang->action->label->prompt = 'Prompt|ai|promptview|id=%s'; $lang->action->label->miniprogram = 'Mini Program|aiapp|browseminiprogram|id=%s'; $lang->action->label->holiday = 'Holiday|holiday|browse|'; +$lang->action->label->deliverable = 'Deliverable|deliverable|view|id=%s'; /* Object type. */ $lang->action->search = new stdclass(); diff --git a/module/action/lang/zh-cn.php b/module/action/lang/zh-cn.php index 6d33955720..2a0de805e2 100755 --- a/module/action/lang/zh-cn.php +++ b/module/action/lang/zh-cn.php @@ -191,6 +191,7 @@ $lang->action->objectTypes['board'] = '白板'; $lang->action->objectTypes['boardspace'] = '白板空间'; $lang->action->objectTypes['productline'] = '产品线'; $lang->action->objectTypes['system'] = $lang->product->system; +$lang->action->objectTypes['deliverable'] = '交付物'; /* 用来描述操作历史记录。*/ $lang->action->desc = new stdclass(); @@ -937,6 +938,7 @@ $lang->action->label->instance = '服务|instance|view|id=%s'; $lang->action->label->prompt = '提词|ai|promptview|id=%s'; $lang->action->label->miniprogram = '小程序|aiapp|browseminiprogram|id=%s'; $lang->action->label->holiday = '节假日|holiday|browse|'; +$lang->action->label->deliverable = '交付物|deliverable|view|id=%s'; /* Object type. */ $lang->action->search = new stdclass(); diff --git a/module/action/model.php b/module/action/model.php index 4c0b54675b..75e4b8cf66 100755 --- a/module/action/model.php +++ b/module/action/model.php @@ -197,7 +197,6 @@ class actionModel extends model $this->loadModel('workflow'); foreach($actions as $actionID => $action) { - $extra = $action->extra; $actionName = strtolower($action->action); if($this->config->edition != 'open' && !isset($flowList[$action->objectType])) $flowList[$action->objectType] = $this->workflow->getByModule($action->objectType); @@ -940,6 +939,12 @@ class actionModel extends model foreach($actions as $action) { $item = new stdClass(); + if(strlen(trim(($action->comment))) !== 0) + { + $item->comment = $this->formatActionComment($action->comment); + $currentUserCanEdit = $action->id == $endAction->id && $action->actor == $account && $action->action == 'commented'; + $item->commentEditable = $commentEditable && common::hasPriv('action', 'editComment') && $currentUserCanEdit; + } if($action->action === 'assigned' || $action->action === 'toaudit') { @@ -951,7 +956,7 @@ class actionModel extends model $action->actor = zget($users, $action->actor); if(str_contains($action->actor, ':')) $action->actor = substr($action->actor, strpos($action->actor, ':') + 1); - if(!empty($action->history)) $item->historyChanges = $this->renderChanges($action->objectType, $action->history); + if(!empty($action->history)) $item->historyChanges = $this->renderChanges($action->objectType, $action->objectID, $action->history); $item->id = $action->id; $item->action = $action->action; @@ -1166,7 +1171,7 @@ class actionModel extends model /* If idList include ',*,' Format ',*,' to '*'. */ $projectIdList = array(); - foreach($projectGroups as $key => $idList) + foreach($projectGroups as $idList) { $idList = explode(',', (string)$idList); foreach($idList as $id) $projectIdList[] = $id; @@ -1452,12 +1457,13 @@ class actionModel extends model * Render histories of every action. * * @param string $objectType + * @param int $objectID * @param array $histories * @param bool $canChangeTag * @access public * @return string */ - public function renderChanges(string $objectType, array $histories, bool $canChangeTag = true): string + public function renderChanges(string $objectType, int $objectID, array $histories, bool $canChangeTag = true): string { if(empty($histories)) return ''; @@ -1507,7 +1513,14 @@ class actionModel extends model } else { - $content .= sprintf($this->lang->action->desc->diff1, $history->fieldLabel, $history->old, $history->new); + if($history->field == 'deliverable' && ($objectType == 'project' || $objectType == 'execution')) + { + $content .= $this->processDeliverableJson($objectType, $objectID, $history); + } + else + { + $content .= sprintf($this->lang->action->desc->diff1, $history->fieldLabel, $history->old, $history->new); + } } } return $content; @@ -1518,14 +1531,15 @@ class actionModel extends model * Print histories of every action. * * @param string $objectType + * @param int $objectID * @param array $histories * @param bool $canChangeTag * @access public * @return void */ - public function printChanges(string $objectType, array $histories, bool $canChangeTag = true): void + public function printChanges(string $objectType, int $objectID, array $histories, bool $canChangeTag = true): void { - $content = $this->renderChanges($objectType, $histories, $canChangeTag); + $content = $this->renderChanges($objectType, $objectID, $histories, $canChangeTag); if(is_string($content)) echo $content; } diff --git a/module/admin/config.php b/module/admin/config.php index 48b6d8c167..f205582b85 100755 --- a/module/admin/config.php +++ b/module/admin/config.php @@ -8,7 +8,7 @@ if(!isset($config->safe->weak)) $config->safe->weak = '123456,password,12345,123 $config->admin->menuGroup['system'] = array('custom|mode', 'backup', 'cron', 'action|trash', 'admin|xuanxuan', 'setting|xuanxuan', 'admin|license', 'admin|checkweak', 'admin|resetpwdsetting', 'admin|safe', 'cache|setting', 'custom|timezone', 'search|buildindex', 'admin|tableengine', 'ldap', 'custom|libreoffice', 'conference', 'watermark', 'client', 'system|browsebackup', 'system|restorebackup'); $config->admin->menuGroup['company'] = array('dept', 'company', 'user', 'group', 'tutorial'); $config->admin->menuGroup['switch'] = array('admin|setmodule'); -$config->admin->menuGroup['model'] = array('auditcl', 'stage', 'design', 'cmcl', 'reviewcl', 'custom|required', 'custom|set', 'custom|flow', 'custom|code', 'custom|percent','custom|estimate', 'custom|hours', 'subject', 'process', 'activity', 'zoutput', 'classify', 'holiday', 'reviewsetting', 'custom|project'); +$config->admin->menuGroup['model'] = array('auditcl', 'stage', 'deliverable', 'design', 'cmcl', 'reviewcl', 'custom|required', 'custom|set', 'custom|flow', 'custom|code', 'custom|percent','custom|estimate', 'custom|hours', 'subject', 'process', 'activity', 'zoutput', 'classify', 'holiday', 'reviewsetting', 'custom|project'); $config->admin->menuGroup['feature'] = array('custom|set', 'custom|product', 'custom|execution', 'custom|required', 'custom|kanban', 'measurement', 'meetingroom', 'custom|browsestoryconcept', 'custom|kanban', 'sqlbuilder', 'report', 'custom|limittaskdate', 'measurement'); $config->admin->menuGroup['template'] = array('custom|set', 'baseline'); $config->admin->menuGroup['message'] = array('mail', 'webhook', 'sms', 'message'); diff --git a/module/admin/lang/de.php b/module/admin/lang/de.php index f46edad4ef..11bc8a98f8 100755 --- a/module/admin/lang/de.php +++ b/module/admin/lang/de.php @@ -118,6 +118,7 @@ $lang->admin->setModule->opportunitylib = 'Opportunity Lib'; $lang->admin->setModule->practicelib = 'Practice Lib'; $lang->admin->setModule->componentlib = 'Component Lib'; $lang->admin->setModule->devops = 'DevOps'; +$lang->admin->setModule->deliverable = 'Deliverable'; $lang->admin->setModule->kanban = 'Kanban'; $lang->admin->setModule->OA = 'OA'; $lang->admin->setModule->deploy = 'Deploy'; diff --git a/module/admin/lang/en.php b/module/admin/lang/en.php index ca0b92b227..aec0983c5b 100755 --- a/module/admin/lang/en.php +++ b/module/admin/lang/en.php @@ -118,6 +118,7 @@ $lang->admin->setModule->opportunitylib = 'Opportunity Lib'; $lang->admin->setModule->practicelib = 'Practice Lib'; $lang->admin->setModule->componentlib = 'Component Lib'; $lang->admin->setModule->devops = 'DevOps'; +$lang->admin->setModule->deliverable = 'Deliverable'; $lang->admin->setModule->kanban = 'Kanban'; $lang->admin->setModule->OA = 'OA'; $lang->admin->setModule->deploy = 'Deploy'; diff --git a/module/admin/lang/fr.php b/module/admin/lang/fr.php index 1d5b91d323..38b0490e3a 100755 --- a/module/admin/lang/fr.php +++ b/module/admin/lang/fr.php @@ -118,6 +118,7 @@ $lang->admin->setModule->opportunitylib = 'Opportunity Lib'; $lang->admin->setModule->practicelib = 'Practice Lib'; $lang->admin->setModule->componentlib = 'Component Lib'; $lang->admin->setModule->devops = 'DevOps'; +$lang->admin->setModule->deliverable = 'Deliverable'; $lang->admin->setModule->kanban = 'Kanban'; $lang->admin->setModule->OA = 'OA'; $lang->admin->setModule->deploy = 'Deploy'; diff --git a/module/admin/lang/menu.php b/module/admin/lang/menu.php index cef8ec25a5..8acf9d1353 100644 --- a/module/admin/lang/menu.php +++ b/module/admin/lang/menu.php @@ -74,7 +74,7 @@ $lang->admin->menuList->company['menuOrder']['5'] = 'dept'; $lang->admin->menuList->company['menuOrder']['10'] = 'browseUser'; $lang->admin->menuList->company['menuOrder']['15'] = 'group'; -$lang->admin->menuList->model['subMenu']['common'] = array('link' => "{$lang->globalSetting}|custom|required|module=project", 'subModule' => 'custom,subject,holiday,stage', 'exclude' => 'stage-browse,stage-plusbrowse,stage-create,stage-edit,stage-batchcreate'); +$lang->admin->menuList->model['subMenu']['common'] = array('link' => "{$lang->globalSetting}|custom|required|module=project", 'subModule' => 'custom,subject,holiday,stage,deliverable', 'exclude' => 'stage-browse,stage-plusbrowse,stage-create,stage-edit,stage-batchcreate'); $lang->admin->menuList->model['subMenu']['scrum'] = array('link' => "{$lang->scrumModel}|auditcl|scrumbrowse|", 'subModule' => 'auditcl'); $lang->admin->menuList->model['subMenu']['waterfall'] = array('link' => "{$lang->waterfallModel}|stage|browse|", 'subModule' => 'stage', 'exclude' => 'stage-settype,stage-plusbrowse'); $lang->admin->menuList->model['subMenu']['agileplus'] = array('link' => "{$lang->agilePlusModel}|auditcl|agileplusbrowse|", 'subModule' => 'auditcl'); @@ -86,13 +86,14 @@ $lang->admin->menuList->model['menuOrder']['15'] = 'waterfall'; $lang->admin->menuList->model['menuOrder']['20'] = 'agileplus'; $lang->admin->menuList->model['menuOrder']['25'] = 'waterfallplus'; -$lang->admin->menuList->model['tabMenu']['common']['project'] = array('link' => "{$lang->project->common}|custom|required|module=project", 'alias' => 'set,project', 'exclude' => 'custom-required', 'links' => array('custom|set|module=project&field=unitList')); -if(helper::hasFeature('waterfall') or helper::hasFeature('waterfallplus')) $lang->admin->menuList->model['tabMenu']['common']['stage'] = array('link' => "{$lang->stage->type}|stage|settype|", 'subModule' => 'stage'); -$lang->admin->menuList->model['tabMenu']['common']['build'] = array('link' => "{$lang->build->common}|custom|required|module=build", 'alias' => 'set', 'exclude' => 'custom'); -$lang->admin->menuList->model['tabMenu']['common']['flow'] = array('link' => "{$lang->custom->flow}|custom|flow|", 'divider' => true); +$lang->admin->menuList->model['tabMenu']['common']['project'] = array('link' => "{$lang->project->common}|custom|required|module=project", 'alias' => 'set,project', 'exclude' => 'custom-required', 'links' => array('custom|set|module=project&field=unitList')); +if(helper::hasFeature('waterfall') || helper::hasFeature('waterfallplus')) $lang->admin->menuList->model['tabMenu']['common']['stage'] = array('link' => "{$lang->stage->type}|stage|settype|", 'subModule' => 'stage'); +if(helper::hasFeature('deliverable') && ($config->edition == 'max' || $config->edition == 'ipd')) $lang->admin->menuList->model['tabMenu']['common']['deliverable'] = array('link' => "{$lang->deliverable->common}|deliverable|browse|", 'subModule' => 'deliverable'); +$lang->admin->menuList->model['tabMenu']['common']['build'] = array('link' => "{$lang->build->common}|custom|required|module=build", 'alias' => 'set', 'exclude' => 'custom'); +$lang->admin->menuList->model['tabMenu']['common']['flow'] = array('link' => "{$lang->custom->flow}|custom|flow|", 'divider' => true); -$lang->admin->menuList->model['tabMenu']['common']['percent'] = array('link' => "{$lang->stage->percent}|custom|percent|"); -$lang->admin->menuList->model['tabMenu']['common']['hours'] = array('link' => "{$lang->workingHour}|custom|hours|", 'subModule' => 'holiday', 'links' => array('holiday|browse|', 'custom|hours|')); +$lang->admin->menuList->model['tabMenu']['common']['percent'] = array('link' => "{$lang->stage->percent}|custom|percent|"); +$lang->admin->menuList->model['tabMenu']['common']['hours'] = array('link' => "{$lang->workingHour}|custom|hours|", 'subModule' => 'holiday', 'links' => array('holiday|browse|', 'custom|hours|')); if(helper::hasFeature('waterfall')) $lang->admin->menuList->model['tabMenu']['waterfall']['stage'] = array('link' => "{$lang->stage->list}|stage|browse|", 'subModule' => 'stage', 'exclude' => 'stage-plusbrowse'); if(helper::hasFeature('waterfallplus')) $lang->admin->menuList->model['tabMenu']['waterfallplus']['stage'] = array('link' => "{$lang->stage->list}|stage|plusbrowse|", 'subModule' => 'stage', 'exclude' => 'stage-browse'); $lang->admin->menuList->model['tabMenu']['menuOrder']['common']['5'] = 'project'; @@ -103,6 +104,10 @@ $lang->admin->menuList->model['tabMenu']['menuOrder']['common']['40'] = 'p $lang->admin->menuList->model['tabMenu']['menuOrder']['common']['45'] = 'hours'; if(helper::hasFeature('waterfall')) $lang->admin->menuList->model['tabMenu']['menuOrder']['waterfall']['5'] = 'stage'; if(helper::hasFeature('waterfallplus')) $lang->admin->menuList->model['tabMenu']['menuOrder']['waterfallplus']['5'] = 'stage'; +if($config->edition == 'max' or $config->edition == 'ipd') +{ + $lang->admin->menuList->model['tabMenu']['menuOrder']['common']['15'] = 'deliverable'; +} $lang->admin->menuList->feature['subMenu']['my'] = array('link' => "{$lang->my->common}|custom|set|module=todo&field=priList", 'exclude' => 'set,required'); $lang->admin->menuList->feature['subMenu']['product'] = array('link' => "{$lang->productCommon}|custom|required|module=product", 'exclude' => 'set,required', 'alias' => 'browsestoryconcept,product'); diff --git a/module/admin/lang/zh-cn.php b/module/admin/lang/zh-cn.php index 2be5c58512..18dbf40abe 100755 --- a/module/admin/lang/zh-cn.php +++ b/module/admin/lang/zh-cn.php @@ -118,6 +118,7 @@ $lang->admin->setModule->opportunitylib = '机会库'; $lang->admin->setModule->practicelib = '最佳实践库'; $lang->admin->setModule->componentlib = '组件库'; $lang->admin->setModule->devops = 'DevOps'; +$lang->admin->setModule->deliverable = '交付物'; $lang->admin->setModule->kanban = '通用看板'; $lang->admin->setModule->OA = '办公'; $lang->admin->setModule->deploy = '运维'; @@ -170,7 +171,7 @@ $lang->admin->menuSetting['user']['name'] = '人员管理'; $lang->admin->menuSetting['user']['desc'] = '维护部门、添加人员、分组配置权限。'; $lang->admin->menuSetting['switch']['name'] = '功能开关'; $lang->admin->menuSetting['switch']['desc'] = '打开、关闭系统部分功能。'; -$lang->admin->menuSetting['model']['name'] = '模型配置'; +$lang->admin->menuSetting['model']['name'] = '项目模型配置'; $lang->admin->menuSetting['model']['desc'] = '不同项目管理模型和项目通用要素配置。'; $lang->admin->menuSetting['feature']['name'] = '功能配置'; $lang->admin->menuSetting['feature']['desc'] = '按照功能菜单进行系统的要素配置。'; diff --git a/module/bug/config.php b/module/bug/config.php index f8caed6827..034f396f3b 100755 --- a/module/bug/config.php +++ b/module/bug/config.php @@ -34,14 +34,14 @@ $config->bug->list->allFields = 'id, module, execution, story, task, $config->bug->list->defaultFields = 'id,title,severity,pri,openedBy,assignedTo,resolvedBy,resolution'; $config->bug->list->customCreateFields = 'execution,noticefeedbackBy,story,task,pri,severity,os,browser,deadline,mailto,keywords'; $config->bug->list->customBatchEditFields = 'type,severity,pri,productplan,assignedTo,deadline,resolvedBy,resolution,os,browser,keywords'; -$config->bug->list->customBatchCreateFields = 'project,execution,steps,type,pri,deadline,severity,os,browser,keywords'; +$config->bug->list->customBatchCreateFields = 'project,execution,plan,steps,type,pri,deadline,severity,os,browser,keywords'; $config->bug->custom = new stdclass(); $config->bug->custom->createFields = $config->bug->list->customCreateFields; $config->bug->custom->batchCreateFields = 'project,execution,deadline,steps,type,pri,severity,os,browser,%s'; $config->bug->custom->batchEditFields = 'type,severity,pri,assignedTo,deadline,status,resolvedBy,resolution'; -$config->bug->exportFields = 'id, product, branch, module, project, execution, story, task, +$config->bug->exportFields = 'id, product, branch, module, project, execution, plan, story, task, title, keywords, severity, pri, type, os, browser, steps, status, deadline, activatedCount, confirmed, mailto, openedBy, openedDate, openedBuild, diff --git a/module/bug/config/form.php b/module/bug/config/form.php index 9736e3f52d..12057be640 100644 --- a/module/bug/config/form.php +++ b/module/bug/config/form.php @@ -10,6 +10,7 @@ $config->bug->form->create['openedBuild'] = array('required' => true, 'type' => $config->bug->form->create['product'] = array('required' => false, 'type' => 'int', 'default' => 0); $config->bug->form->create['branch'] = array('required' => false, 'type' => 'int', 'default' => 0); $config->bug->form->create['module'] = array('required' => false, 'type' => 'int', 'default' => 0); +$config->bug->form->create['plan'] = array('required' => false, 'type' => 'int', 'default' => 0); $config->bug->form->create['project'] = array('required' => false, 'type' => 'int', 'default' => 0); $config->bug->form->create['execution'] = array('required' => false, 'type' => 'int', 'default' => 0); $config->bug->form->create['assignedTo'] = array('required' => false, 'type' => 'string', 'default' => ''); @@ -159,6 +160,7 @@ $config->bug->form->batchCreate['story'] = array('required' => false, 'typ $config->bug->form->batchCreate['branch'] = array('required' => false, 'type' => 'int', 'default' => 0); $config->bug->form->batchCreate['laneID'] = array('required' => false, 'type' => 'int', 'default' => 0); $config->bug->form->batchCreate['openedBuild'] = array('required' => true, 'type' => 'array', 'default' => '', 'filter' => 'join'); +$config->bug->form->batchCreate['plan'] = array('required' => false, 'type' => 'int', 'default' => 0); $config->bug->form->batchCreate['title'] = array('required' => true, 'type' => 'string', 'default' => '', 'base' => true); $config->bug->form->batchCreate['deadline'] = array('required' => false, 'type' => 'date', 'default' => null); $config->bug->form->batchCreate['steps'] = array('required' => false, 'type' => 'string', 'default' => '', 'control' => 'editor'); diff --git a/module/bug/config/table.php b/module/bug/config/table.php index c6116e204b..856b198bd4 100644 --- a/module/bug/config/table.php +++ b/module/bug/config/table.php @@ -70,11 +70,12 @@ $config->bug->dtable->fieldList['execution']['group'] = 3; $config->bug->dtable->fieldList['execution']['dataSource'] = array('module' => 'execution', 'method' =>'getPairs', 'params' => ['projectID' => 0]); $config->bug->dtable->fieldList['execution']['sortType'] = true; -$config->bug->dtable->fieldList['plan']['title'] = $lang->bug->plan; -$config->bug->dtable->fieldList['plan']['width'] = 120; -$config->bug->dtable->fieldList['plan']['group'] = 3; -$config->bug->dtable->fieldList['plan']['sortType'] = true; -$config->bug->dtable->fieldList['plan']['hint'] = true; +$config->bug->dtable->fieldList['plan']['title'] = $lang->bug->plan; +$config->bug->dtable->fieldList['plan']['width'] = 120; +$config->bug->dtable->fieldList['plan']['group'] = 3; +$config->bug->dtable->fieldList['plan']['sortType'] = true; +$config->bug->dtable->fieldList['plan']['hint'] = true; +$config->bug->dtable->fieldList['plan']['dataSource'] = array('module' => 'productplan', 'method' =>'getPairs', 'params' => ['productIdList' => '$productIdList', 'branch' => '$branch']); $config->bug->dtable->fieldList['openedBuild']['title'] = $lang->bug->openedBuild; $config->bug->dtable->fieldList['openedBuild']['type'] = 'text'; diff --git a/module/bug/control.php b/module/bug/control.php index b883f78ab4..b1b4fb23bf 100755 --- a/module/bug/control.php +++ b/module/bug/control.php @@ -646,7 +646,17 @@ class bug extends control { /* 设置bug导出的参数。 */ /* Set bug export params. */ - $this->session->set('bugTransferParams', array('productID' => $productID, 'executionID' => $executionID, 'branch' => 'all')); + if($executionID) + { + $productIdList = $this->loadModel('product')->getProductPairsByProject($executionID); + $productIdList = array_keys($productIdList); + } + else + { + $productIdList = array($productID); + } + + $this->session->set('bugTransferParams', array('productID' => $productID, 'executionID' => $executionID, 'branch' => 'all', 'productIdList' => $productIdList)); /* 设置导出数据源。 */ /* Set export data source. */ diff --git a/module/bug/js/edit.ui.js b/module/bug/js/edit.ui.js index b043cb7cca..48b36c7ba8 100644 --- a/module/bug/js/edit.ui.js +++ b/module/bug/js/edit.ui.js @@ -40,3 +40,9 @@ function linkBug() openUrl(link, {load: 'modal', size: 'lg'}); } + +function setDuplicateBug() +{ + const productID = $('[name=product]').val(); + loadProductBugs(productID, bug.id); +} diff --git a/module/bug/model.php b/module/bug/model.php index b2fef73673..c0d51afa2d 100644 --- a/module/bug/model.php +++ b/module/bug/model.php @@ -41,7 +41,7 @@ class bugModel extends model if(!empty($bug->assignedTo)) $this->action->create('bug', $bugID, 'Assigned', '', $bug->assignedTo); /* Add score for create. */ - $files = $this->loadModel('file')->saveUpload('bug', $bugID); + $this->loadModel('file')->saveUpload('bug', $bugID); if(!empty($bug->case)) { $this->loadModel('score')->create('bug', 'createFormCase', $bug->case); @@ -344,7 +344,7 @@ class bugModel extends model if($changes) $this->action->logHistory($actionID, $changes); } - if($this->config->edition != 'open') + if($this->config->edition != 'open' && $this->app->rawMethod != 'batchedit') { if($oldBug->story > 0 || $oldBug->task > 0 || $oldBug->case > 0) { @@ -771,7 +771,7 @@ class bugModel extends model $this->config->bug->search['queryID'] = $queryID; $this->config->bug->search['params']['project']['values'] = $projectParams; $this->config->bug->search['params']['product']['values'] = $productParams; - $this->config->bug->search['params']['plan']['values'] = $this->loadModel('productplan')->getPairs($productID); + $this->config->bug->search['params']['plan']['values'] = $this->loadModel('productplan')->getPairs($productID, '', '', true); $this->config->bug->search['params']['module']['values'] = $modules; $this->config->bug->search['params']['execution']['values'] = $this->loadModel('product')->getExecutionPairsByProduct($productID, '0', (int)$projectID); $this->config->bug->search['params']['severity']['values'] = array(0 => '') + $this->lang->bug->severityList; //Fix bug #939. diff --git a/module/bug/ui/batchcreate.html.php b/module/bug/ui/batchcreate.html.php index 1906819900..b8de0005af 100644 --- a/module/bug/ui/batchcreate.html.php +++ b/module/bug/ui/batchcreate.html.php @@ -12,6 +12,7 @@ namespace zin; $defaultBug = array('module' => $moduleID, 'project' => $projectID, 'execution' => $executionID, 'openedBuild' => 'trunk', 'pri' => 3, 'severity' => 3); if($product->type != 'normal') $defaultBug['branch'] = $branch; +if($product->shadow) unset($customFields['plan']); if(isset($executionType) && $executionType == 'kanban') { $defaultBug['region'] = $regionID; @@ -64,6 +65,9 @@ $items[] = array /* Field of openedBuild. */ $items[] = array('name' => 'openedBuild', 'label' => $lang->bug->openedBuild, 'control' => 'picker', 'items' => $builds, 'value' => 'trunk', 'multiple' => true, 'width' => '200px', 'required' => true, 'ditto' => true); +/* Field of plan. */ +if(!$product->shadow) $items[] = array('name' => 'plan', 'label' => $lang->bug->plan, 'control' => 'picker', 'items' => $plans, 'value' => '', 'width' => '200px', 'required' => isset($requiredFields['plan']), 'ditto' => true); + /* Field of title. */ $items[] = array( 'name' => 'title', 'label' => $lang->bug->title, 'width' => '240px', 'required' => true, 'control' => 'colorInput'); diff --git a/module/bug/ui/common.field.php b/module/bug/ui/common.field.php index 548b4facec..d9ef075481 100644 --- a/module/bug/ui/common.field.php +++ b/module/bug/ui/common.field.php @@ -58,6 +58,7 @@ if(data('executionType') && data('executionType') == 'kanban') } $fields->field('title') + ->className('full:w-full') ->control('colorInput', array('colorValue' => data('bug.color'))); $fields->field('type') diff --git a/module/bug/ui/create.field.php b/module/bug/ui/create.field.php index 4e2cc0f7e1..fffdc4d53f 100644 --- a/module/bug/ui/create.field.php +++ b/module/bug/ui/create.field.php @@ -27,6 +27,13 @@ $fields->field('execution') ->className($isShadowProduct && $isOriginalProduct ? 'full:w-1/2' : 'full:w-1/4') ->foldable(!$isShadowProduct); +$fields->field('plan') + ->label($lang->bug->plan) + ->className('w-1/2 full:w-1/2') + ->hidden($noMultipleProject) + ->items(data('plans')) + ->foldable(); + if(common::hasPriv('build', 'create')) { $fields->field('openedBuild') diff --git a/module/bug/ui/create.html.php b/module/bug/ui/create.html.php index 68150fa7a0..15d6311d04 100644 --- a/module/bug/ui/create.html.php +++ b/module/bug/ui/create.html.php @@ -24,7 +24,8 @@ $fields->autoLoad('branch', 'module,execution,project,story,task,assignedTo') ->autoLoad('allUsers', 'assignedTo') ->autoLoad('region', 'lane'); -if(!$product->shadow) $fields->fullModeOrders('module,project,execution'); +if(!$product->shadow) $fields->fullModeOrders('module,project,execution,plan', 'pri,title'); +$fields->sort('execution,plan'); jsVar('bug', $bug); jsVar('moduleID', $bug->moduleID); diff --git a/module/bug/ui/edit.html.php b/module/bug/ui/edit.html.php index 142a0180de..bdcd368e28 100644 --- a/module/bug/ui/edit.html.php +++ b/module/bug/ui/edit.html.php @@ -517,7 +517,8 @@ detailBody set::name($lang->bug->duplicateBug), picker ( - set::items($productBugs), + on::click('setDuplicateBug'), + set::items(array()), set::name('duplicateBug'), set::value($bug->duplicateBug) ) diff --git a/module/bug/zen.php b/module/bug/zen.php index e388eaa3a0..e8b3eca51c 100644 --- a/module/bug/zen.php +++ b/module/bug/zen.php @@ -379,6 +379,7 @@ class bugZen extends bug protected function getExportFields(int $executionID, object|bool $product): string { $exportFields = str_replace(' ', '', $this->config->bug->exportFields); + $isShadow = false; if(isset($product->type) and $product->type == 'normal') $exportFields = str_replace(',branch,', ',', ",{$exportFields},");; if(!$product) { @@ -387,9 +388,16 @@ class bugZen extends bug foreach($products as $product) { if($product->type != 'normal') $hasBranch = true; + if(!empty($product->shadow)) $isShadow = true; } if(!$hasBranch) $exportFields = str_replace(',branch,', ',', ",{$exportFields},"); } + else + { + $isShadow = $product->shadow; + } + + if($isShadow) $exportFields = str_replace(',plan,', ',', ",{$exportFields},"); if($this->app->tab == 'project' or $this->app->tab == 'execution') { $execution = $this->loadModel('execution')->getByID($executionID); @@ -1104,6 +1112,7 @@ class bugZen extends bug $this->view->branchID = $bug->branch != 'all' ? $bug->branch : '0'; $this->view->cases = $this->loadModel('testcase')->getPairsByProduct($this->session->product, array(0, $this->view->branchID)); $this->view->copyBugID = isset($bugID) ? $bugID : 0; + $this->view->plans = $this->loadModel('productplan')->getPairs($bug->productID, $bug->branch, 'noclosed', true); } /** @@ -1133,8 +1142,6 @@ class bugZen extends bug /* Get bugs of current product. */ $branch = ''; if($product->type == 'branch') $branch = $bug->branch > 0 ? "{$bug->branch},0" : '0'; - $productBugs = $this->bug->getProductBugPairs($bug->product, $branch); - unset($productBugs[$bug->id]); /* Get execution pairs. */ $unAllowedStage = array('request', 'design', 'review'); @@ -1156,7 +1163,7 @@ class bugZen extends bug if($product->type != 'normal') $branchTagOption = $this->getBranchOptions($product->id); if($this->config->edition == 'max') $this->view->injectionList = $this->view->identifyList = $this->loadModel('review')->getPairs($bug->project, $bug->product, true); - $this->assignVarsForEdit($bug); + $this->assignVarsForEdit($bug, $product); $this->view->title = $this->lang->bug->edit . "BUG #$bug->id $bug->title - " . $this->products[$bug->product]; $this->view->bug = $bug; @@ -1165,7 +1172,6 @@ class bugZen extends bug $this->view->projectID = $bug->project; $this->view->projects = $projects; $this->view->executions = $executions; - $this->view->productBugs = $productBugs; $this->view->branchTagOption = $branchTagOption; $this->view->projectExecutionPairs = $this->loadModel('project')->getProjectExecutionPairs(); } @@ -1175,10 +1181,11 @@ class bugZen extends bug * Assign variables for editing bug. * * @param object $bug + * @param object $product * @access protected * @return void */ - protected function assignVarsForEdit(object $bug): void + protected function assignVarsForEdit(object $bug, object $product): void { /* Add product related to the bug when it is not in the products. */ if(!isset($this->products[$bug->product])) @@ -1401,6 +1408,7 @@ class bugZen extends bug $this->view->branch = $branch; $this->view->branches = $branches; $this->view->moduleOptionMenu = $this->tree->getOptionMenu($product->id, 'bug', 0, $branch === 'all' ? 'all' : (string)$branch); + $this->view->plans = $this->loadModel('productplan')->getPairs($product->id, $branch, 'noclosed', true); } /** @@ -2450,7 +2458,9 @@ class bugZen extends bug $fields = array('projectID' => $bugInfo->project, 'moduleID' => $bugInfo->module, 'executionID' => $bugInfo->execution, 'taskID' => $bugInfo->task, 'storyID' => $isSameProduct ? $bugInfo->story : 0, 'buildID' => $bugInfo->openedBuild, 'caseID' => $bugInfo->case, 'title' => $bugInfo->title, 'steps' => $bugInfo->steps, 'severity' => $bugInfo->severity, 'type' => $bugInfo->type, 'assignedTo' => $bugInfo->assignedTo, 'deadline' => (helper::isZeroDate($bugInfo->deadline) ? '' : $bugInfo->deadline), 'os' => $bugInfo->os, 'browser' => $bugInfo->browser, 'mailto' => $bugInfo->mailto, 'keywords' => $bugInfo->keywords, 'color' => $bugInfo->color, 'testtask' => $bugInfo->testtask, 'feedbackBy' => $bugInfo->feedbackBy, 'notifyEmail' => $bugInfo->notifyEmail, - 'pri' => ($bugInfo->pri == 0 ? 3 : $bugInfo->pri)); + 'pri' => ($bugInfo->pri == 0 ? 3 : $bugInfo->pri), + 'plan' => $bugInfo->plan + ); $bug = $this->updateBug($bug, $fields); diff --git a/module/build/lang/de.php b/module/build/lang/de.php index 2a28219b1b..da915fb5f5 100644 --- a/module/build/lang/de.php +++ b/module/build/lang/de.php @@ -10,6 +10,7 @@ * @link https://www.zentao.net */ $lang->build->common = "Build"; +$lang->build->browse = "Build List"; $lang->build->create = "Build erstellen"; $lang->build->edit = "Bearbeiten"; $lang->build->linkStory = "{$lang->SRCommon} verknüpfen"; diff --git a/module/build/lang/en.php b/module/build/lang/en.php index 87cdd16721..7029c0d180 100644 --- a/module/build/lang/en.php +++ b/module/build/lang/en.php @@ -10,6 +10,7 @@ * @link https://www.zentao.net */ $lang->build->common = "Build"; +$lang->build->browse = "Build List"; $lang->build->create = "Create Build"; $lang->build->edit = "Edit Build"; $lang->build->linkStory = "Link {$lang->SRCommon}"; diff --git a/module/build/lang/fr.php b/module/build/lang/fr.php index 85d2daf8d1..da7ea5afec 100644 --- a/module/build/lang/fr.php +++ b/module/build/lang/fr.php @@ -10,6 +10,7 @@ * @link https://www.zentao.net */ $lang->build->common = "Build"; +$lang->build->browse = "Liste Build"; $lang->build->create = "Créer Build"; $lang->build->edit = "Editer Build"; $lang->build->linkStory = "Intégrer {$lang->SRCommon}"; diff --git a/module/build/lang/zh-cn.php b/module/build/lang/zh-cn.php index 3130868d54..5c980b8b51 100644 --- a/module/build/lang/zh-cn.php +++ b/module/build/lang/zh-cn.php @@ -10,6 +10,7 @@ * @link https://www.zentao.net */ $lang->build->common = "构建"; +$lang->build->browse = "构建列表"; $lang->build->create = "创建构建"; $lang->build->edit = "编辑构建"; $lang->build->linkStory = "关联{$lang->SRCommon}"; diff --git a/module/caselib/zen.php b/module/caselib/zen.php index 277c9951f2..28a7156c4c 100644 --- a/module/caselib/zen.php +++ b/module/caselib/zen.php @@ -245,8 +245,8 @@ class caselibZen extends caselib if(empty($rows)) { - $row->typeValue = join("\n", $this->lang->testcase->typeList); - $row->stageValue = join("\n", $this->lang->testcase->stageList); + $row->typeValue = implode("\n", $this->lang->testcase->typeList); + $row->stageValue = implode("\n", $this->lang->testcase->stageList); } $rows[] = $row; @@ -444,7 +444,7 @@ class caselibZen extends caselib $case->stage = array(); foreach($stages as $stage) $case->stage[] = array_search($stage, $this->lang->testcase->stageList); - $case->stage = join(',', $case->stage); + $case->stage = implode(',', $case->stage); } else { @@ -558,7 +558,6 @@ class caselibZen extends caselib { $users = $this->loadModel('user')->getPairs('noletter'); $relatedModules = $this->loadModel('tree')->getModulePairs($libID, 'caselib'); - $relatedCases = $this->loadModel('testcase')->getRelatedCases($cases); $relatedSteps = $this->testcase->getRelatedSteps(array_keys($cases)); $relatedFiles = $this->testcase->getRelatedFiles(array_keys($cases)); @@ -655,7 +654,7 @@ class caselibZen extends caselib { $case->stage = explode(',', $case->stage); foreach($case->stage as $key => $stage) $case->stage[$key] = isset($this->lang->testcase->stageList[$stage]) ? $this->lang->testcase->stageList[$stage] : $stage; - $case->stage = join("\n", $case->stage); + $case->stage = implode("\n", $case->stage); } /** @@ -697,6 +696,6 @@ class caselibZen extends caselib $linkCaseID = trim($linkCaseID); $tmpLinkCases[] = isset($relatedCases[$linkCaseID]) ? $relatedCases[$linkCaseID] . "(#$linkCaseID)" : $linkCaseID; } - $case->linkCase = join("; \n", $tmpLinkCases); + $case->linkCase = implode("; \n", $tmpLinkCases); } } diff --git a/module/cne/model.php b/module/cne/model.php index 503b2ab8ac..b3290746ac 100644 --- a/module/cne/model.php +++ b/module/cne/model.php @@ -250,8 +250,28 @@ class cneModel extends model $result = $this->apiGet('/api/cne/statistics/cluster', array('cluster' => ''), $this->config->CNE->api->headers); if($result->code != 200) return $statistics; + $nodes = $this->apiGet('/api/cne/cluster/nodes', array('cluster' => ''), $this->config->CNE->api->headers); + if($nodes->code != 200) return $statistics; + + $readyNode = 0; + $nodeError = ''; + foreach($nodes->data as $node) + { + if($node->ready) + { + $readyNode++; + } + else + { + if(empty($node->issues)) continue; + $nodeError .= sprintf($this->lang->system->nodeNotice, $node->name, implode(',', array_unique($node->issues))) . "\n"; + } + } $statistics = $result->data; + $statistics->node_count = count($nodes->data); + $statistics->ready_count = $readyNode; + $statistics->nodeError = $nodeError; $statistics->metrics->cpu->usage = max(round($statistics->metrics->cpu->usage, 4), 0); $statistics->metrics->cpu->capacity = max(round($statistics->metrics->cpu->capacity, 4), $statistics->metrics->cpu->usage); $statistics->metrics->cpu->allocatable = round($statistics->metrics->cpu->allocatable, 4); diff --git a/module/cne/test/model/cnemetrics.php b/module/cne/test/model/cnemetrics.php index 4d3e55c4e7..1c47a520ba 100755 --- a/module/cne/test/model/cnemetrics.php +++ b/module/cne/test/model/cnemetrics.php @@ -7,8 +7,11 @@ title=测试 cneModel->cneMetrics(); timeout=0 cid=1 -- 获取CNE平台的集群度量属性status @normal - +- 获取CNE平台的集群度量状态属性status @unknown +- 获取CNE平台的集群cpu数据属性usage @0 +- 获取CNE平台的集群cpu数据属性capacity @0 +- 获取CNE平台的集群内存属性usage @0 +- 获取CNE平台的集群内存属性capacity @0 */ include dirname(__FILE__, 5) . '/test/lib/init.php'; @@ -20,4 +23,8 @@ $config->CNE->app->domain = 'g79n.corp.cc'; $cneModel = $tester->loadModel('cne'); -r($cneModel->cneMetrics()) && p('status') && e('normal'); // 获取CNE平台的集群度量 +r($cneModel->cneMetrics()) && p('status') && e('unknown'); // 获取CNE平台的集群度量状态 +r($cneModel->cneMetrics()->metrics->cpu) && p('usage') && e('0'); // 获取CNE平台的集群cpu数据 +r($cneModel->cneMetrics()->metrics->cpu) && p('capacity') && e('0'); // 获取CNE平台的集群cpu数据 +r($cneModel->cneMetrics()->metrics->memory) && p('usage') && e('0'); // 获取CNE平台的集群内存 +r($cneModel->cneMetrics()->metrics->memory) && p('capacity') && e('0'); // 获取CNE平台的集群内存 diff --git a/module/common/lang/common.php b/module/common/lang/common.php index 01677fd34a..1c242060ad 100644 --- a/module/common/lang/common.php +++ b/module/common/lang/common.php @@ -105,8 +105,12 @@ $lang->ops = new stdclass(); $lang->domain = new stdclass(); $lang->service = new stdclass(); $lang->deployment = new stdclass(); +$lang->deliverable = new stdclass(); $lang->metric = new stdclass(); +$lang->projectDeliverable = new stdclass(); +$lang->executionDeliverable = new stdclass(); + $lang->ai = new stdclass(); $lang->aiapp = new stdclass(); diff --git a/module/common/lang/de.php b/module/common/lang/de.php index 46ff6aea75..c46dcca65c 100644 --- a/module/common/lang/de.php +++ b/module/common/lang/de.php @@ -289,37 +289,40 @@ $lang->aiapp->common = 'AI'; $lang->product->system = 'Application'; $lang->configure->common = 'Configure'; -$lang->programstakeholder->common = 'Stakeholder'; -$lang->featureswitch->common = 'Features On/Off'; -$lang->importdata->common = 'Import data'; -$lang->systemsetting->common = 'System setting'; -$lang->staffmanage->common = 'User management'; -$lang->modelconfig->common = 'Pattern setting'; -$lang->featureconfig->common = 'Features config'; -$lang->doctemplate->common = 'Doc template'; -$lang->notifysetting->common = 'Notification'; -$lang->bidesign->common = 'BI design'; -$lang->personalsettings->common = 'Personal setting '; -$lang->projectsettings->common = 'Setting'; -$lang->dataaccess->common = 'Data permission'; -$lang->executiongantt->common = 'Gantt chart'; -$lang->executionkanban->common = 'Kanban'; -$lang->executionburn->common = 'Burndown chart'; -$lang->executioncfd->common = 'Cumulative Flow Diagram'; -$lang->executionstory->common = 'Story'; -$lang->executionqa->common = 'QA'; -$lang->executionsettings->common = 'Setting'; -$lang->generalcomment->common = 'Comment'; -$lang->generalping->common = 'Timeout prevention'; -$lang->generaltemplate->common = 'Template'; -$lang->generaleffort->common = 'General log'; -$lang->productsettings->common = 'Product setting'; -$lang->projectreview->common = 'Review'; -$lang->projecttrack->common = 'Matrix'; -$lang->projectqa->common = 'QA'; -$lang->holidayseason->common = 'Holiday'; -$lang->codereview->common = 'Review'; -$lang->repocode->common = 'Code'; +$lang->programstakeholder->common = 'Stakeholder'; +$lang->featureswitch->common = 'Features On/Off'; +$lang->importdata->common = 'Import data'; +$lang->systemsetting->common = 'System setting'; +$lang->staffmanage->common = 'User management'; +$lang->modelconfig->common = 'Pattern setting'; +$lang->featureconfig->common = 'Features config'; +$lang->doctemplate->common = 'Doc template'; +$lang->notifysetting->common = 'Notification'; +$lang->bidesign->common = 'BI design'; +$lang->personalsettings->common = 'Personal setting '; +$lang->projectsettings->common = 'Setting'; +$lang->dataaccess->common = 'Data permission'; +$lang->executiongantt->common = 'Gantt chart'; +$lang->executionkanban->common = 'Kanban'; +$lang->executionburn->common = 'Burndown chart'; +$lang->executioncfd->common = 'Cumulative Flow Diagram'; +$lang->executionstory->common = 'Story'; +$lang->executionqa->common = 'QA'; +$lang->executionsettings->common = 'Setting'; +$lang->generalcomment->common = 'Comment'; +$lang->generalping->common = 'Timeout prevention'; +$lang->generaltemplate->common = 'Template'; +$lang->generaleffort->common = 'General log'; +$lang->productsettings->common = 'Product setting'; +$lang->projectreview->common = 'Review'; +$lang->projecttrack->common = 'Matrix'; +$lang->projectqa->common = 'QA'; +$lang->holidayseason->common = 'Holiday'; +$lang->codereview->common = 'Review'; +$lang->repocode->common = 'Code'; +$lang->deliverable->common = 'Deliverable'; +$lang->projectDeliverable->common = 'Project Deliverable'; +$lang->executionDeliverable->common = 'Execution Deliverable'; $lang->personnel->common = 'Member'; $lang->personnel->invest = 'Investment'; diff --git a/module/common/lang/en.php b/module/common/lang/en.php index d15451b81a..2008ab8507 100644 --- a/module/common/lang/en.php +++ b/module/common/lang/en.php @@ -289,37 +289,40 @@ $lang->aiapp->common = 'AI'; $lang->product->system = 'Application'; $lang->configure->common = 'Configure'; -$lang->programstakeholder->common = 'Stakeholder'; -$lang->featureswitch->common = 'Features On/Off'; -$lang->importdata->common = 'Import data'; -$lang->systemsetting->common = 'System setting'; -$lang->staffmanage->common = 'User management'; -$lang->modelconfig->common = 'Pattern setting'; -$lang->featureconfig->common = 'Features config'; -$lang->doctemplate->common = 'Doc template'; -$lang->notifysetting->common = 'Notification'; -$lang->bidesign->common = 'BI design'; -$lang->personalsettings->common = 'Personal setting '; -$lang->projectsettings->common = 'Setting'; -$lang->dataaccess->common = 'Data permission'; -$lang->executiongantt->common = 'Gantt chart'; -$lang->executionkanban->common = 'Kanban'; -$lang->executionburn->common = 'Burndown chart'; -$lang->executioncfd->common = 'Cumulative Flow Diagram'; -$lang->executionstory->common = 'Story'; -$lang->executionqa->common = 'QA'; -$lang->executionsettings->common = 'Setting'; -$lang->generalcomment->common = 'Comment'; -$lang->generalping->common = 'Timeout prevention'; -$lang->generaltemplate->common = 'Template'; -$lang->generaleffort->common = 'General log'; -$lang->productsettings->common = 'Product setting'; -$lang->projectreview->common = 'Review'; -$lang->projecttrack->common = 'Matrix'; -$lang->projectqa->common = 'QA'; -$lang->holidayseason->common = 'Holiday'; -$lang->codereview->common = 'Review'; -$lang->repocode->common = 'Code'; +$lang->programstakeholder->common = 'Stakeholder'; +$lang->featureswitch->common = 'Features On/Off'; +$lang->importdata->common = 'Import data'; +$lang->systemsetting->common = 'System setting'; +$lang->staffmanage->common = 'User management'; +$lang->modelconfig->common = 'Pattern setting'; +$lang->featureconfig->common = 'Features config'; +$lang->doctemplate->common = 'Doc template'; +$lang->notifysetting->common = 'Notification'; +$lang->bidesign->common = 'BI design'; +$lang->personalsettings->common = 'Personal setting '; +$lang->projectsettings->common = 'Setting'; +$lang->dataaccess->common = 'Data permission'; +$lang->executiongantt->common = 'Gantt chart'; +$lang->executionkanban->common = 'Kanban'; +$lang->executionburn->common = 'Burndown chart'; +$lang->executioncfd->common = 'Cumulative Flow Diagram'; +$lang->executionstory->common = 'Story'; +$lang->executionqa->common = 'QA'; +$lang->executionsettings->common = 'Setting'; +$lang->generalcomment->common = 'Comment'; +$lang->generalping->common = 'Timeout prevention'; +$lang->generaltemplate->common = 'Template'; +$lang->generaleffort->common = 'General log'; +$lang->productsettings->common = 'Product setting'; +$lang->projectreview->common = 'Review'; +$lang->projecttrack->common = 'Matrix'; +$lang->projectqa->common = 'QA'; +$lang->holidayseason->common = 'Holiday'; +$lang->codereview->common = 'Review'; +$lang->repocode->common = 'Code'; +$lang->deliverable->common = 'Deliverable'; +$lang->projectDeliverable->common = 'Project Deliverable'; +$lang->executionDeliverable->common = 'Execution Deliverable'; $lang->personnel->common = 'Member'; $lang->personnel->invest = 'Investment'; diff --git a/module/common/lang/fr.php b/module/common/lang/fr.php index 1a85fd6b83..fe0936db33 100644 --- a/module/common/lang/fr.php +++ b/module/common/lang/fr.php @@ -289,37 +289,40 @@ $lang->aiapp->common = 'AI'; $lang->product->system = 'Application'; $lang->configure->common = 'Configure'; -$lang->programstakeholder->common = 'Stakeholder'; -$lang->featureswitch->common = 'Features On/Off'; -$lang->importdata->common = 'Import data'; -$lang->systemsetting->common = 'System setting'; -$lang->staffmanage->common = 'User management'; -$lang->modelconfig->common = 'Pattern setting'; -$lang->featureconfig->common = 'Features config'; -$lang->doctemplate->common = 'Doc template'; -$lang->notifysetting->common = 'Notification'; -$lang->bidesign->common = 'BI design'; -$lang->personalsettings->common = 'Personal setting '; -$lang->projectsettings->common = 'Setting'; -$lang->dataaccess->common = 'Data permission'; -$lang->executiongantt->common = 'Gantt chart'; -$lang->executionkanban->common = 'Kanban'; -$lang->executionburn->common = 'Burndown chart'; -$lang->executioncfd->common = 'Cumulative Flow Diagram'; -$lang->executionstory->common = 'Story'; -$lang->executionqa->common = 'QA'; -$lang->executionsettings->common = 'Setting'; -$lang->generalcomment->common = 'Comment'; -$lang->generalping->common = 'Timeout prevention'; -$lang->generaltemplate->common = 'Template'; -$lang->generaleffort->common = 'General log'; -$lang->productsettings->common = 'Product setting'; -$lang->projectreview->common = 'Review'; -$lang->projecttrack->common = 'Matrix'; -$lang->projectqa->common = 'QA'; -$lang->holidayseason->common = 'Holiday'; -$lang->codereview->common = 'Review'; -$lang->repocode->common = 'Code'; +$lang->programstakeholder->common = 'Stakeholder'; +$lang->featureswitch->common = 'Features On/Off'; +$lang->importdata->common = 'Import data'; +$lang->systemsetting->common = 'System setting'; +$lang->staffmanage->common = 'User management'; +$lang->modelconfig->common = 'Pattern setting'; +$lang->featureconfig->common = 'Features config'; +$lang->doctemplate->common = 'Doc template'; +$lang->notifysetting->common = 'Notification'; +$lang->bidesign->common = 'BI design'; +$lang->personalsettings->common = 'Personal setting '; +$lang->projectsettings->common = 'Setting'; +$lang->dataaccess->common = 'Data permission'; +$lang->executiongantt->common = 'Gantt chart'; +$lang->executionkanban->common = 'Kanban'; +$lang->executionburn->common = 'Burndown chart'; +$lang->executioncfd->common = 'Cumulative Flow Diagram'; +$lang->executionstory->common = 'Story'; +$lang->executionqa->common = 'QA'; +$lang->executionsettings->common = 'Setting'; +$lang->generalcomment->common = 'Comment'; +$lang->generalping->common = 'Timeout prevention'; +$lang->generaltemplate->common = 'Template'; +$lang->generaleffort->common = 'General log'; +$lang->productsettings->common = 'Product setting'; +$lang->projectreview->common = 'Review'; +$lang->projecttrack->common = 'Matrix'; +$lang->projectqa->common = 'QA'; +$lang->holidayseason->common = 'Holiday'; +$lang->codereview->common = 'Review'; +$lang->repocode->common = 'Code'; +$lang->deliverable->common = 'Deliverable'; +$lang->projectDeliverable->common = 'Project Deliverable'; +$lang->executionDeliverable->common = 'Execution Deliverable'; $lang->personnel->common = 'Member'; $lang->personnel->invest = 'Investment'; diff --git a/module/common/lang/menu.php b/module/common/lang/menu.php index 8d2217cec7..fd3161b489 100644 --- a/module/common/lang/menu.php +++ b/module/common/lang/menu.php @@ -240,7 +240,7 @@ if(helper::hasFeature('devops')) $lang->scrum->menu->devops = array('link' $lang->scrum->menu->build = array('link' => "{$lang->build->common}|projectbuild|browse|project=%s", 'subModule' => 'projectbuild'); $lang->scrum->menu->release = array('link' => "{$lang->release->common}|projectrelease|browse|project=%s", 'subModule' => 'projectrelease,system'); $lang->scrum->menu->dynamic = array('link' => "$lang->dynamic|project|dynamic|project=%s"); -$lang->scrum->menu->settings = array('link' => "$lang->settings|project|view|project=%s", 'subModule' => 'tree,stakeholder', 'alias' => 'edit,manageproducts,group,managemembers,manageview,managepriv,whitelist,addwhitelist,team', 'exclude' => 'tree-browsetask'); +$lang->scrum->menu->settings = array('link' => "$lang->settings|project|view|project=%s", 'subModule' => 'tree,stakeholder', 'alias' => 'edit,manageproducts,group,managemembers,manageview,managepriv,whitelist,addwhitelist,team,workflowgroup', 'exclude' => 'tree-browsetask'); $lang->scrum->dividerMenu = ',execution,programplan,doc,settings,'; @@ -783,6 +783,7 @@ $lang->navGroup->extension = 'admin'; $lang->navGroup->action = 'admin'; $lang->navGroup->convert = 'admin'; $lang->navGroup->stage = 'admin'; +$lang->navGroup->deliverable = 'admin'; $lang->navGroup->featureswitch = 'admin'; $lang->navGroup->importdata = 'admin'; $lang->navGroup->systemsetting = 'admin'; diff --git a/module/common/lang/zh-cn.php b/module/common/lang/zh-cn.php index 22bd919f27..c6b088a140 100644 --- a/module/common/lang/zh-cn.php +++ b/module/common/lang/zh-cn.php @@ -289,37 +289,40 @@ $lang->aiapp->common = 'AI'; $lang->product->system = '应用'; $lang->configure->common = '配置'; -$lang->programstakeholder->common = '干系人'; -$lang->featureswitch->common = '功能开关'; -$lang->importdata->common = '数据导入'; -$lang->systemsetting->common = '系统设置'; -$lang->staffmanage->common = '人员管理'; -$lang->modelconfig->common = '模型配置'; -$lang->featureconfig->common = '功能配置'; -$lang->doctemplate->common = '文档模板'; -$lang->notifysetting->common = '通知设置'; -$lang->bidesign->common = 'BI设计'; -$lang->personalsettings->common = '个人设置'; -$lang->projectsettings->common = '设置'; -$lang->dataaccess->common = '数据权限'; -$lang->executiongantt->common = '甘特图'; -$lang->executionkanban->common = '看板'; -$lang->executionburn->common = '燃尽图'; -$lang->executioncfd->common = '累积流图'; -$lang->executionstory->common = '研发需求'; -$lang->executionqa->common = '测试'; -$lang->executionsettings->common = '设置'; -$lang->generalcomment->common = '备注'; -$lang->generalping->common = '防超时'; -$lang->generaltemplate->common = '模板'; -$lang->generaleffort->common = '通用日志'; -$lang->productsettings->common = '产品设置'; -$lang->projectreview->common = '评审'; -$lang->projecttrack->common = '矩阵'; -$lang->projectqa->common = '测试'; -$lang->holidayseason->common = '节假日'; -$lang->codereview->common = '问题'; -$lang->repocode->common = '代码'; +$lang->programstakeholder->common = '干系人'; +$lang->featureswitch->common = '功能开关'; +$lang->importdata->common = '数据导入'; +$lang->systemsetting->common = '系统设置'; +$lang->staffmanage->common = '人员管理'; +$lang->modelconfig->common = '项目模型配置'; +$lang->featureconfig->common = '功能配置'; +$lang->doctemplate->common = '文档模板'; +$lang->notifysetting->common = '通知设置'; +$lang->bidesign->common = 'BI设计'; +$lang->personalsettings->common = '个人设置'; +$lang->projectsettings->common = '设置'; +$lang->dataaccess->common = '数据权限'; +$lang->executiongantt->common = '甘特图'; +$lang->executionkanban->common = '看板'; +$lang->executionburn->common = '燃尽图'; +$lang->executioncfd->common = '累积流图'; +$lang->executionstory->common = '研发需求'; +$lang->executionqa->common = '测试'; +$lang->executionsettings->common = '设置'; +$lang->generalcomment->common = '备注'; +$lang->generalping->common = '防超时'; +$lang->generaltemplate->common = '模板'; +$lang->generaleffort->common = '通用日志'; +$lang->productsettings->common = '产品设置'; +$lang->projectreview->common = '评审'; +$lang->projecttrack->common = '矩阵'; +$lang->projectqa->common = '测试'; +$lang->holidayseason->common = '节假日'; +$lang->codereview->common = '问题'; +$lang->repocode->common = '代码'; +$lang->deliverable->common = '交付物'; +$lang->projectDeliverable->common = '项目交付物'; +$lang->executionDeliverable->common = '执行交付物'; $lang->personnel->common = '人员'; $lang->personnel->invest = '投入人员'; diff --git a/module/common/model.php b/module/common/model.php index 34f83cf79f..a4faa6f1eb 100644 --- a/module/common/model.php +++ b/module/common/model.php @@ -516,7 +516,7 @@ class commonModel extends model { $info['timeUsed'] = round(getTime() - $startTime, 4) * 1000; $info['memory'] = round(memory_get_peak_usage() / 1024, 1); - $info['querys'] = count(dao::$querys); + $info['querys'] = count(dbh::$queries); vprintf($this->lang->runInfo, $info); return $info; } diff --git a/module/common/view/action.html.php b/module/common/view/action.html.php index d1dadede7f..46c53b7416 100755 --- a/module/common/view/action.html.php +++ b/module/common/view/action.html.php @@ -61,7 +61,7 @@ history)):?>