diff --git a/Makefile b/Makefile
index 94c26cb17c..e7602749bd 100644
--- a/Makefile
+++ b/Makefile
@@ -58,6 +58,7 @@ common:
# delete the unused files.
find zentaopms -name .gitkeep |xargs rm -fr
find zentaopms -name tests |xargs rm -fr
+ find zentaopms -name test |xargs rm -fr
# notify.zip.
mkdir zentaopms/www/data/notify/
zentaoxx:
@@ -288,9 +289,13 @@ ciCommon:
make package
make cleanAssets
- zip -rq -9 ZenTaoPMS.$(VERSION).zip zentaopms
- # en
cp -a zentaopms zentaoalm
+ sed -i '/^\s*$$config->langs\['"'"'de'"'"']/d' zentaopms/config/config.php
+ sed -i '/^\s*$$config->langs\['"'"'fr'"'"']/d' zentaopms/config/config.php
+ zip -rq -9 ZenTaoPMS.$(VERSION).zip zentaopms -x "*/de.php" "*/fr.php" "*/vi.php" "*/de/*" "*/fr/*" "*/vi/*"
+ tar -cJf ZenTaoPMS.$(VERSION).tar.xz --exclude="*/de.php" --exclude="*/fr.php" --exclude="*/vi.php" --exclude="*/de" --exclude="*/fr" --exclude="*/vi" zentaopms
+
+ # en
cd zentaoalm/; grep -rl 'zentao.net'|xargs sed -i 's/zentao.net/zentao.pm/g';
cd zentaoalm/; grep -rl 'http://www.zentao.pm'|xargs sed -i 's/http:\/\/www.zentao.pm/https:\/\/www.zentao.pm/g';
cd zentaoalm/config/; echo >> config.php; echo '$$config->isINT = true;' >> config.php
diff --git a/db/update18.10.1.sql b/db/update18.10.1.sql
index 926c3113c6..b508d1ee67 100644
--- a/db/update18.10.1.sql
+++ b/db/update18.10.1.sql
@@ -1,2 +1,159 @@
ALTER TABLE `zt_demand` ADD COLUMN `feedback` mediumint(9) NOT NULL DEFAULT '0';
ALTER TABLE `zt_demand` ADD COLUMN `keywords` varchar(255) NOT NULL DEFAULT '';
+
+CREATE TABLE IF NOT EXISTS `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;
+
+CREATE TABLE IF NOT EXISTS `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;
+
+INSERT INTO `zt_ai_miniprogram` (`id`, `name`, `category`, `desc`, `model`, `icon`, `createdBy`, `createdDate`, `editedBy`, `editedDate`, `published`, `publishedDate`, `deleted`, `prompt`, `builtIn`) VALUES
+(1, '职业发展导航', 'personal', '职业发展导航是一个旨在帮助用户规划和实现职业目标的AI小程序,为用户提供个性化的建议。', 0, 'technologist-6', 'system', NOW(), 'system', NOW(), '1', NOW(), '0', '请帮我生成一份职业发展导航,我的教育背景为 <教育背景> ,职位信息为 <职位信息> ,工作经验描述如下: <工作经验> ,掌握的技能为 <掌握技能> ,为了实现 <职业目标> ,我想做一个 <规划时长> 的计划,我有更多感兴趣的领域为 <更多感兴趣的领域> ,有更多补充内容 <补充信息> ,来追求相关机会和进一步发展,控制在30字以内。', '1'),
+(2, '工作汇报', 'work', '旨在帮助您轻松撰写和管理您的工作汇报。无论是每周、每月还是季度性的报告,我们提供了一个简单而高效的平台,让您能够清晰、有条理地记录和展示您的工作成果。', 0, 'technologist-2', 'system', NOW(), 'system', NOW(), '1', NOW(), '0', '我的基本信息如下: <身份描述> ,请根据我的工作情况生成一份工作汇报,需要包含 <汇报内容维度> ,汇报对象描述为 <汇报对象> ,另外还需要补充 <补充信息> 。下面是我的工作内容基本描述: <工作内容描述> ,控制在30字以内。', '1'),
+(3, '市场分析报告', 'work', '市场分析报告小程序是一个旨在帮助用户根据互联网信息快速生成市场分析报告的AI小程序。', 0, 'chart-6', 'system', NOW(), 'system', NOW(), '1', NOW(), '0', '请帮我生成一份市场分析报告,我目标市场是 <目标市场> ,市场概况为 <市场概况> ,该领域的细分市场有 <细分市场> ,同时我希望能针对 <竞品名称> 展开竞品分析,竞品分析的维度是 <竞品分析维度> ,来帮助我快速的了解市场。', '1'),
+(4, '健身计划', 'life', '健身计划小程序旨在帮助您制定和管理个性化的健身计划,让您更轻松、高效地实现健康和体能目标。', 0, 'cactus-5', 'system', NOW(), 'system', NOW(), '1', NOW(), '0', '我的基本信息如下: <性别> 、 <基本信息> ,我想做一份健身计划,达成 <目标设定> 的效果,对于目标我有如下更多补充:: <目标补充> 。我的初步想法是进行 <计划类型> 方面的类型,训练频次为 <训练频率> ,同时给身体足够的休息和恢复时间,要求如下 <休息与恢复> ,请根据我的上述情况生成一份健身计划,控制在30字以内。', '1'),
+(5, '广告创意大师', 'creative', '广告创意大师是一个根据产品卖点,快速为用户提供广告文案的AI小程序。', 0, 'palette-3', 'system', NOW(), 'system', NOW(), '1', NOW(), '0', '假设我是一名 <角色> ,请结合产品卖点和目标用户,帮我为 <产品名称> 生成 <文案数量> 条计划投放在 <投放渠道> 的广告文案,且保证每条文案的字数不超过30字;产品的核心卖点是 <核心卖点> ,目标用户是 <目标用户> 。', '1'),
+(6, '文章撰写助手', 'creative', '旨在为自媒体创作者提供一个强大而便捷的平台,助力您撰写优质的文章并实现更广泛的影响力。', 0, 'writinghand-3', 'system', NOW(), 'system', NOW(), '1', NOW(), '0', '生成一篇标题为 <文章主题> 的文章,文章内容概要为 <内容概要> ,计划发布到 <发布平台> ,需要注意控制 <规范要求> 。', '1'),
+(7, '视频脚本创意工坊', 'creative', '视频脚本创意工房是一个帮助新手视频博主快速梳理视频创作思路,生成拍摄脚本的AI小程序。', 0, 'notebook-3', 'system', NOW(), 'system', NOW(), '1', NOW(), '0', '假设我是一个新手视频博主,现请以 <主题> 为题,创作一个时长不超过 <视频时长> 分钟, <视频风格> 风格的视频脚本。', '1'),
+(8, '邮件起草助手', 'life', '邮件起草助手可以帮助用户更快速地起草邮件,减少繁琐的手动输入和编辑过程,帮助用户更好地表达和提升效率。', 0, 'computer-6', 'system', NOW(), 'system', NOW(), '1', NOW(), '0', '请为我提供一份邮件的起草建议和模板,根据 <邮件目的> 为目的,收件对象与我的关系为 <收件人关系> ,需要包含如下邮件内容: <邮件内容> ,使用 <邮件口吻> 的口吻,字数限制在 <字数限制> 之内,更多需要按照 <补充信息> 进行完善。', '1'),
+(9, '新人介绍', 'personal', '新人介绍小程序是一个旨在帮助用户在入职当天,快速编写自我介绍的AI小程序。', 0, 'pencil-7', 'system', NOW(), 'system', NOW(), '1', NOW(), '0', '请帮我生成一份新人介绍,我的年龄是 <年龄> ,籍贯是 <籍贯信息> ,毕业于 <毕业院校> ,工作经验为 <工作经验> ,日常爱好是 <爱好> ,请将字数控制在300字以内,来帮助我完成新人入职的自我介绍,', '1'),
+(10, '调研问卷生成器', 'work', '调研问卷生成器是一个可以快速依据用户需要生成问卷内容的好帮手,旨在为用户提供更多的问题设计思路。', 0, 'search-6', 'system', NOW(), 'system', NOW(), '1', NOW(), '0', '请帮我生成一份调查问卷内容,我希望以 <调研主题> 为调研方向,问卷调研对象为 <调研对象> ,问题主题至少需要包括如下内容: <问题主题> ,期望题目类型包括 <题目类型> ,题目数量限制为 <题目数量> ,更多需要按照 <补充信息> 进行完善。', '1'),
+(11, 'OKR目标达人', 'personal', 'OKR目标达人是一个旨在帮助用户规划和实现高效目标管理的AI小程序。', 0, 'pushpin-1', 'system', NOW(), 'system', NOW(), '1', NOW(), '0', '我是一名 <所处行业> 行业的 <职业名称> ,主要负责的工作是 <工作内容> ,请帮我写一份 <时间范围> 的OKR,需要包括目标和关键结果,更多信息依据 <补充信息> 进行完善。', '1'),
+(12, '学习规划师', 'life', '学习计划师是一个旨在帮助用户快速制定学习的AI小程序,为用户提供个性化的建议。', 0, 'notebook-7', 'system', NOW(), 'system', NOW(), '1', NOW(), '0', '我希望通过 <持续天数> 的学习计划来学习 <学习内容> 以达成 <目标设定> 的目标,在这个计划中需要包括以下 <学习内容> ,并为我提供对应的学习建议和指导,更多信息依据 <补充信息> 进行完善,使我能够在这段时间内取得最佳的学习效果。', '1');
+
+CREATE TABLE IF NOT EXISTS `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 IF NOT EXISTS `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;
+
+INSERT INTO `zt_ai_miniprogramfield` (`appID`, `name`, `type`, `placeholder`, `options`, `required`) VALUES
+(1, '教育背景', 'textarea', '学历/专业', NULL, '0'),
+(1, '职位信息', 'text', '行业领域/职位描述', NULL, '0'),
+(1, '工作经验', 'textarea', '简要概述工作成果、团队合作沟通经验等', NULL, '0'),
+(1, '掌握技能', 'textarea', '关键技能、熟练程度', NULL, '0'),
+(1, '职业目标', 'text', '请输入你的职业目标', NULL, '0'),
+(1, '更多感兴趣的领域', 'textarea', '请输入更多你感兴趣的领域', NULL, '0'),
+(1, '规划时长', 'radio', NULL, '1年,3-5年,10年', '1'),
+(1, '补充信息', 'textarea', '请输入更多补充信息', NULL, '0'),
+(2, '身份描述', 'textarea', '职位/角色/职责', NULL, '0'),
+(2, '工作内容描述', 'textarea', '请输入工作内容', NULL, '1'),
+(2, '汇报对象', 'textarea', '请输入汇报对象信息', NULL, '0'),
+(2, '汇报内容维度', 'checkbox', NULL, '完成情况,遇到的问题,关键指标,团队协作,进一步改进', '0'),
+(2, '补充信息', 'textarea', '请输入更多补充信息', NULL, '0'),
+(3, '目标市场', 'text', '请概述目标市场的定义和范围', NULL, '0'),
+(3, '市场概况', 'text', '可描述市场规模、增长率、发展趋势等信息', NULL, '0'),
+(3, '细分市场', 'text', '请描述市场的主要细分领域', NULL, '0'),
+(3, '竞品名称', 'text', '请描述列举竞品名称', NULL, '0'),
+(3, '竞品分析维度', 'checkbox', NULL, '市场份额,市场定位,产品特点,服务特点,销售策略,营销策旅', '0'),
+(4, '性别', 'radio', NULL, '男,女', '1'),
+(4, '基本信息', 'textarea', '请输入身高、体重等基础信息', NULL, '0'),
+(4, '目标设定', 'checkbox', NULL, '增肌,减脂,增强体能,特定方面的能力', '1'),
+(4, '目标补充', 'textarea', '可以补充对目标的详细描述', NULL, '0'),
+(4, '计划类型', 'checkbox', NULL, '重力训练,有氧运动,柔韧训练', '0'),
+(4, '训练频率', 'text', '请输入训练频次', NULL, '0'),
+(4, '休息与恢复', 'textarea', '请输入睡眠及饮食要求', NULL, '0'),
+(5, '角色', 'text', '请设定角色', NULL, '0'),
+(5, '产品名称', 'text', '请输入产品名称', NULL, '0'),
+(5, '文案数量', 'radio', NULL, '1,2,3,4,5', '0'),
+(5, '核心卖点', 'text', '请概述产品的核心卖点', NULL, '0'),
+(5, '目标用户', 'text', '请概述产品的主要目标用户', NULL, '0'),
+(5, '投放渠道', 'checkbox', NULL, '电视,广播,户外,网络,报刊,电影', '0'),
+(6, '文章主题', 'textarea', '请输入文章主题', NULL, '1'),
+(6, '内容概要', 'textarea', '请输入内容概要', NULL, '0'),
+(6, '规范要求', 'textarea', '例如语气描述、字数限制等', NULL, '0'),
+(6, '发布平台', 'text', '该文章计划发布的平台', NULL, '0'),
+(7, '主题', 'text', '请描述视频主题', NULL, '0'),
+(7, '视频风格', 'checkbox', NULL, '纪实,人文,风景,动画,广告', '0'),
+(7, '视频时长', 'radio', NULL, '1,3,5,10', '0'),
+(8, '邮件目的', 'textarea', '您此次发送邮件的目的', NULL, '1'),
+(8, '收件人关系', 'text', '简述与收件人之间的关系', NULL, '1'),
+(8, '邮件内容', 'textarea', '简述邮件内容', NULL, '1'),
+(8, '邮件口吻', 'textarea', '请输入期望的邮件口吻', NULL, '0'),
+(8, '字数限制', 'text', '请输入字数限制', NULL, '0'),
+(8, '补充信息', 'textarea', '请输入更多补充信息', NULL, '0'),
+(9, '年龄', 'text', '年龄', NULL, '0'),
+(9, '籍贯信息', 'text', '省/市', NULL, '0'),
+(9, '毕业院校', 'text', '毕业院校/专业', NULL, '0'),
+(9, '工作经验', 'textarea', '请简要概述从事行业、工作年限、工作岗位等经验', NULL, '0'),
+(9, '爱好', 'textarea', '请输入', NULL, '0'),
+(10, '调研主题', 'textarea', '请简述您的调研主题', NULL, '1'),
+(10, '调研对象', 'textarea', '简述调研对象', NULL, '1'),
+(10, '问题主题', 'textarea', '简述您想要调研的主题问题', NULL, '0'),
+(10, '题目类型', 'textarea', '请输入期望包括的题型', NULL, '0'),
+(10, '题目数量', 'text', '请输入题目数量限制', NULL, '0'),
+(10, '补充信息', 'textarea', '请输入更多补充信息', NULL, '0'),
+(11, '所处行业', 'text', '请输入所处行业', NULL, '0'),
+(11, '职业名称', 'text', '请输入职业名称', NULL, '1'),
+(11, '工作内容', 'textarea', '请简述你的工作', NULL, '1'),
+(11, '时间范围', 'checkbox', NULL, '月度,季度,半年度,年度', '0'),
+(11, '补充信息', 'textarea', '请输入更多补充信息', NULL, '0'),
+(12, '持续天数', 'text', '请输入天数', NULL, '0'),
+(12, '学习内容', 'textarea', '简要概述要学习的内容方向', NULL, '1'),
+(12, '目标设定', 'textarea', '简要期望达成的目标', NULL, '0'),
+(12, '计划内容', 'checkbox', NULL, '每日学习任务,适用的学习资源,学习方法,进度跟踪方式,激励机制', '0'),
+(12, '补充信息', 'textarea', '请输入更多补充信息', NULL, '0');
+
+CREATE TABLE IF NOT EXISTS `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,
+ UNIQUE (`appID`, `userID`),
+ PRIMARY KEY (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
+
+RENAME TABLE `zt_prompt` TO `zt_ai_prompt`;
+RENAME TABLE `zt_promptrole` TO `zt_ai_promptrole`;
+
+ALTER TABLE `zt_kanban` CHANGE `minColWidth` `minColWidth` smallint(4) NOT NULL DEFAULT '264';
+ALTER TABLE `zt_project` CHANGE `minColWidth` `minColWidth` smallint(4) NOT NULL DEFAULT '264';
+UPDATE `zt_kanban` SET `minColWidth` = '264' WHERE `minColWidth` <= '264';
+UPDATE `zt_project` SET `minColWidth` = '264' WHERE `minColWidth` <= '264';
+UPDATE `zt_project` SET `colWidth` = '264' WHERE `colWidth` <= '264';
+UPDATE `zt_kanban` SET `colWidth` = '264' WHERE `colWidth` <= '264';
diff --git a/db/update18.10.sql b/db/update18.10.sql
index 7e66480483..8e4858591b 100644
--- a/db/update18.10.sql
+++ b/db/update18.10.sql
@@ -6,14 +6,32 @@ ALTER TABLE `zt_story` ADD COLUMN `retractedBy` varchar(30) NOT NULL DEFAULT '';
ALTER TABLE `zt_story` ADD COLUMN `retractedDate` datetime;
ALTER table `zt_metric` ADD `dateType` varchar(50) NOT NULL DEFAULT '';
-ALTER table `zt_metric` ADD `lastCalcRows` int NOT NULL DEFAULT 0 AFTER `order`;
+ALTER table `zt_metric` ADD `lastCalcRows` mediumint NOT NULL DEFAULT 0 AFTER `order`;
ALTER table `zt_metric` ADD `lastCalcTime` datetime DEFAULT NULL AFTER `lastCalcRows`;
INSERT INTO `zt_metric`(`purpose`, `scope`, `object`, `stage`, `type`, `name`, `code`, `unit`, `collector`, `desc`, `definition`, `when`, `createdBy`, `createdDate`, `builtin`, `deleted`, `dateType`) VALUES
('scale', 'system', 'execution', 'released', 'php', '按系统统计的年度完成执行数', 'count_of_annual_finished_execution', 'count', NULL, '按系统统计的年度完成执行数是指在某年度已经完成的执行数。该度量项反映了团队或组织在某年的工作效率和完成能力。较高的年度完成执行数表示团队或组织在完成任务方面表现出较高的效率,反之则可能需要审查工作流程和资源分配情况,以提高执行效率。', '所有的执行个数求和\r\n实际完成日期为某年\r\n过滤已删除的执行', 'realtime', 'system', '2023-08-22 08:00:00', '1', '0', 'year');
+UPDATE `zt_metric` SET `createdBy` = 'system' WHERE `createdBy` = '';
+UPDATE `zt_metric` SET `createdDate` = '2023-08-22 08:00:00' WHERE `createdDate` IS NULL;
+
UPDATE `zt_metric` SET `definition` = '所有测试单中的用例个数求和(不去重)\r\n指派给某人\r\n过滤已删除的用例\r\n过滤已删除的测试单中的用例\r\n过滤已关闭的测试单中的用例\r\n' WHERE `code` = 'count_of_assigned_case_in_user';
UPDATE `zt_metric` SET `definition` = '所有任务个数求和\r\n指派给为某人\r\n过滤已关闭的任务\r\n过滤已取消的任务\r\n过滤已删除的任务\r\n过滤已删除项目的任务\r\n过滤已删除执行的任务\r\n过滤多人任务中某人任务状态为已完成的任务\r\n过滤任务关联的执行和项目都为挂起状态时的任务' WHERE `code` = 'count_of_assigned_task_in_user';
UPDATE `zt_metric` SET `definition` = '所有研发需求个数求和\r\n过滤已删除的研发需求\r\n过滤状态为已关闭的研发需求\r\n过滤已删除产品下的研发需求\r\n过滤已删除的无产品项目下的研发需求' WHERE `code` = 'count_of_pending_story_in_user';
UPDATE `zt_metric` SET `definition` = '所有研发需求个数求和\r\n评审人为某人\r\n评审结果为空\r\n评审状态为评审中或变更中\r\n过滤已删除的需求\r\n过滤已删除产品的需求' WHERE `code` = 'count_of_reviewing_story_in_user';
UPDATE `zt_metric` SET `definition` = '所有Bug个数求和\r\nbug状态为已解决和已关闭\r\n解决者为某人\r\n解决日期为某日\r\n过滤已删除的bug\r\n过滤已删除产品的bug' WHERE `code` = 'count_of_daily_fixed_bug_in_user';
+UPDATE `zt_metric` SET `definition` = '剩余工期=计划截止日期-当前日期\r\n当剩余工期<0时默认为0\r\n当项目已关闭时剩余工期默认为0\r\n过滤已删除的项目' WHERE `code` = 'left_period_of_project';
+
+UPDATE `zt_metric` SET `definition` = '所有的任务个数求和\r\n过滤已删除的任务\r\n过滤已删除项目的任务\r\n过滤已删除执行的任务' WHERE `code` = 'count_of_task';
+UPDATE `zt_metric` SET `definition` = '所有的任务个数求和\r\n状态为已完成\r\n过滤已删除的任务\r\n过滤已删除项目的任务\r\n过滤已删除执行的任务' WHERE `code` = 'count_of_finished_task';
+UPDATE `zt_metric` SET `definition` = '复用:\r\n按系统统计的任务总数\r\n按系统统计的已完成任务数\r\n公式:\r\n按系统统计的未完成任务数=按系统统计的任务总数-按系统统计的已完成任务数' WHERE `code` = 'count_of_unfinished_task';
+UPDATE `zt_metric` SET `definition` = '所有的任务个数求和\r\n状态为已关闭\r\n过滤已删除的任务\r\n过滤已删除项目的任务\r\n过滤已删除执行的任务' WHERE `code` = 'count_of_closed_task';
+UPDATE `zt_metric` SET `definition` = '所有的任务个数求和\r\n创建时间为某年\r\n过滤已删除的任务\r\n过滤已删除项目的任务\r\n过滤已删除执行的任务' WHERE `code` = 'count_of_annual_created_task';
+UPDATE `zt_metric` SET `definition` = '所有的任务个数求和\r\n完成时间为某年\r\n过滤已删除的任务\r\n过滤已删除项目的任务\r\n过滤已删除执行的任务' WHERE `code` = 'count_of_annual_finished_task';
+UPDATE `zt_metric` SET `definition` = '所有的任务个数求和\r\n创建时间为某年某月\r\n过滤已删除的任务\r\n过滤已删除项目的任务\r\n过滤已删除执行的任务' WHERE `code` = 'count_of_monthly_created_task';
+UPDATE `zt_metric` SET `definition` = '所有的任务个数求和\r\n完成时间为某年某月\r\n过滤已删除的任务\r\n过滤已删除项目的任务\r\n过滤已删除执行的任务' WHERE `code` = 'count_of_monthly_finished_task';
+UPDATE `zt_metric` SET `definition` = '所有的任务的预计工时数求和\r\n过滤父任务\r\n过滤已删除的任务\r\n过滤已删除项目的任务\r\n过滤已删除执行的任务' WHERE `code` = 'estimate_of_task';
+UPDATE `zt_metric` SET `definition` = '所有的任务的消耗工时数求和\r\n过滤父任务\r\n过滤已删除的任务\r\n过滤已删除项目的任务\r\n过滤已删除执行的任务' WHERE `code` = 'consume_of_task';
+UPDATE `zt_metric` SET `definition` = '所有的任务的剩余工时数求和\r\n过滤父任务\r\n过滤已删除的任务\r\n过滤已删除项目的任务\r\n过滤已删除执行的任务' WHERE `code` = 'left_of_task';
+UPDATE `zt_metric` SET `definition` = '所有的任务个数求和\r\n完成时间为某日\r\n过滤已删除的任务\r\n过滤已删除项目的任务\r\n过滤已删除执行的任务' WHERE `code` = 'count_of_daily_finished_task';
+
diff --git a/doc/CHANGELOG b/doc/CHANGELOG
index d21b4d9777..8c3ff548fc 100644
--- a/doc/CHANGELOG
+++ b/doc/CHANGELOG
@@ -1,3 +1,292 @@
+2024-02-20 18.11
+完成的需求
+开源版:
+50904 一级导航打印AI小程序广场入口
+50905 实现AI小程序广场分类展示小程序
+50906 实现AI小程序广场的卡片样式
+50907 AI小程序广场支持快捷搜索小程序
+50908 实现AI小程序广场的分页展示
+50909 实现AI小程序广场收藏小程序
+51007 AI小程序详情页的布局及样式
+51008 实现AI小程序详情页表单输入的展示
+51009 实现AI小程序详情页表单输入区块的操作
+51013 AI小程序详情页实现收藏小程序
+51016 实现后台未配置表单字段时AI小程序详情页的展示样式
+51010 AI小程序详情页结果处理区块布局及样式
+51011 实现AI小程序结果处理区块继续追问的功能
+51012 AI小程序支持向上查看历史记录
+51017 实现后台未配置语言模型时AI小程序详情页的展示样式
+51064 实现AI小程序发生错误中断时的提示
+51077 实现当后台禁用小程序时前台详情页的提示
+51078 实现下架AI小程序后再次发布小程序页面的展示
+51079 全局搜索支持搜索AI小程序
+51081 实现AI小程序详情页被删除后再次点击链接的页面样式
+51082 实现后台AI小程序详情页被删除后再次点击链接的展示页面
+51157 实现AI小程序广场入口样式
+51055 后台实现【发布AI小程序】的权限设计
+51056 后台实现【调试AI小程序】的权限设计
+51057 后台实现【编辑AI小程序】的权限设计
+51058 后台实现【创建AI小程序】的权限设计
+51059 后台实现【查看AI小程序详情】的权限设计
+51063 后台实现【浏览AI小程序列表】的权限设计
+51065 后台实现【下架AI小程序】的权限设计
+51066 后台实现【删除AI小程序】的权限设计
+51067 后台实现【查看AI小程序列表】的权限设计
+51068 后台实现【查看AI小程序详情】的权限设计
+51069 后台实现【执行AI小程序】的权限设计
+51070 后台实现【收藏AI小程序】的权限设计
+51332 后台AI小程序配置列表实现导出单个小程序的功能
+51334 后台AI配置小程序详情页实现导出单个小程序的功能
+51335 后台AI配置小程序列表实现导入小程序的功能
+51368 后台实现【导入AI小程序】的权限设计
+51369 后台实现【导出AI小程序】的权限设计
+52026 小程序缺少维护分组的权限
+51874 Linux一键安装包,MySQL有其他数据库不存在的报错信息
+51572 实现未配置任何语言模型时后台语言模型菜单页的显示
+51573 实现语言模型列表字段设计
+51576 实现语言模型列表操作-启用模型
+51577 实现语言模型列表操作-停用模型
+51578 实现语言模型列表操作-编辑模型
+51579 实现添加语言模型的操作
+51580 实现禅道支持多语言模型机制
+51581 优化设计与调试AI提词时,选择语言模型的操作
+51582 优化AI小程序选择语言模型的操作
+51583 实现语言模型列表操作-测试模型
+51728 实现新建、编辑语言模型界面字段校验设计
+51729 优化语言模型详情页设计
+52058 提词列表增加“语言模型”字段
+52060 优化提词详情页“语言模型”的展示字段
+52130 后台实现【创建语言模型】的权限控制
+52131 后台实现【启用语言模型】的权限控制
+52132 后台实现【停用语言模型】的权限控制
+52135 后台实现【浏览语言模型列表】的权限控制
+52136 后台语言模型【测试连接】权限覆盖列表、详情页按钮
+52202 升级后已配置大模型的处理方案
+52564 区分不同版本下AI小程序的权限控制
+52565 导入的小程序的操作控制
+52566 实现系统内置小程序的操作
+52628 AI小程序列表增加链接官网的入口
+52639 优化小程序更新提示样式
+51870 调整管理界面切换功能的位置
+51781 置顶的文本信息右键支持复制
+51743 调整自带截图工具后台名称为“ZenShot”
+51331 优化聊天功能样式
+51324 优化底部导航样式
+51322 优化侧边导航样式
+51328 优化个人中心样式
+48345 AI小程序详情页实现分享小程序
+48566 AI小程序详情页实现复制结果对话内容的功能
+51974 客户端同步实现AI小程序详情
+51972 客户端同步实现AI小程序广场
+企业版:
+50209 大屏设计器引用区块新增度量项栏目
+50303 大屏设计器支持设置度量项的参数面板
+50304 大屏设计器参数面板中可以选择度量项的展现形式
+50324 大屏设计器支持设置度量数据表+图表形式的参数
+50950 大屏筛选器功能优化
+51022 大屏设计器图表标题位置变更
+51025 大屏支持选中组件的小图标或名称拖拽到画布中
+51086 透视表取消汇总设置和显示原始条目后正常显示字段语言项
+51120 大屏设计器引用度量项为指标卡片时,支持两套配置逻辑
+51121 实现A类度量卡的画布展示规则
+51123 实现B类度量卡的画布展示规则
+51132 度量项数据表表头名称优化
+51133 实现A类度量卡的配置项规则
+51134 实现B类度量卡的配置项规则
+51141 度量项展示样式调整
+51149 度量项在大屏展示为图表+透视表时的配置项样式优化
+51167 图表、透视表中的默认分组改为未分组
+51168 大屏设计器中信息组件迁移至小组件标签下
+51192 实现度量项在大屏设计器中以“图表+数据表”样式在画布中的展示规则
+43099 大屏设计器支持添加筛选器组件
+49865 全局筛选器实现配置面板
+49871 全局筛选器配置面板实现不同类筛选器的参数配置功能
+49877 实现全局筛选器位置、尺寸配置项
+51762 透视表查询筛选器弹窗新增提示文案
+51938 大屏引用度量项为指标卡片时筛选器的变化逻辑
+51209 实现大屏设计器存为草稿或发布时卡片缩略图显示当前大屏快照
+52003 度量项在不同的收集场景下展示不同的提示
+52005 度量项实现筛选数据为空时的提示逻辑
+52062 自定义度量项添加属性配置
+52100 度量项增加补零逻辑
+52101 全局筛选器在画布中缩放与右侧配置面板更改尺寸时的展示逻辑
+52168 大屏设计器中度量项列表与度量项模块列表排序保持一致
+52169 将大屏设计器中图表和透视表标签的位置进行互换
+52203 大屏引用度量项实现筛选数据为空时的提示逻辑
+51542 大屏设计器打印批量关联筛选器按钮
+51550 图表、透视表和度量项参数配置面板实现关联全局筛选器的按钮
+51562 批量关联图表、透视表与全局筛选器时的功能逻辑
+52204 大屏引用度量项在不同的收集场景下展示不同的提示
+52524 按系统统计的年度关闭执行数描述变更
+51556 单个图表、透视表关联全局筛选器的功能逻辑
+51557 单个度量项关联全局筛选器的功能逻辑
+51769 批量关联度量项与全局筛选器时的功能逻辑
+51853 批量关联弹窗储存逻辑
+52365 实现SQLite轻型数据库
+52523 新增按系统统计的年度完成执行数
+52645 大屏引用图表、透视表在不同的场景下展示的内容
+51759 图表设计器筛选器配置项优化
+51760 透视表设计器筛选器配置项优化
+52638 度量项变换展示形式时,需要重新设置筛选器关联关系
+52641 被引用的图表、透视表和度量项发生设计变更后,需重新设置筛选器关联关系
+52820 所属月份的全局筛选器下拉菜单改为年月选择组件
+IPD版:
+48089 优化产品反馈设置列表中的注释文案
+50983 需求与市场管理界面在一级导航中打印反馈菜单
+50984 需求与市场管理界面在反馈的二级导航中打印反馈和设置菜单
+50985 实现需求与市场管理界面中的反馈功能
+51412 实现反馈转需求池需求功能
+51415 实现反馈转产品用户需求功能
+51416 实现反馈转待办功能
+51787 实现反馈的设置功能
+52514 解除产品访问控制对产品反馈人员设置的限制
+52548 撤回用户需求后需求池需求可以再次分发
+52750 需求搜索条件中增加关键词字段
+52751 需求列表中增加关键词字段
+52752 需求导出模板中增加关键词字段
+52753 需求导出数据中增加关键词字段
+52754 需求导入功能中增加关键词字段
+52755 需求批量创建页面增加关键词字段
+修复的Bug
+开源版:
+40203 燃尽图更新迭代总工时不生效
+45943 创建小程序没有校验小程序名称和简介必填项
+43619 gpt返回markdown格式文本,消息会话中没有转义成markdown
+43615 1366分辨率下,调试弹窗底部留白过多
+43611 导入小程序仍校验:安装后发布不能为空
+43610 在小程序广场,点击分页按钮,1.5级导航有误
+43582 小程序调试时的内容,在小程序广场详情中也展示了
+43580 小程序调试超时时,结果预览处显示了Network error
+43439 人员权限中,ai模块权限是空的
+43422 通过全局搜索进入小程序详情,一、二级导航显示有误
+43421 小程序广场详情中,语言模型返回数据前可以多次点击重新生成按钮
+43146 小程序基本信息配置页面的语言模型和后台配置页面不一致
+43033 导入小程序没有加zip格式限制
+43008 小程序调试弹窗,提词预览过长时,没有空间展示调试结果了
+43000 导入小程序未上传安装包,点击保存报错
+42998 导入小程序弹窗的必填项标识位置有误
+42997 点击上一步返回基本信息配置页面,返回后没有带出小程序名称和简介
+42556 已发布的小程序详情,仍然可以调试小程序
+42548 拥有创建小程序的权限,创建小程序点击下一步仍提示我无权限
+42542 已发布的小程序详情中,仍然展示删除按钮
+42538 小程序缺少维护分组的权限
+42526 已发布的小程序,进入详情页后,仍然展示发布按钮
+42521 小程序广场详情页,标题没有title
+42519 全局检索小程序,点击预览按钮,有报错
+42509 被删除的小程序,进入小程序详情后提示:当前小程序被禁用
+42508 小程序广场,切换英文语言项报错
+42419 小程序基本信息配置页面,点击保存后,一级导航没有了
+42132 小程序保存后,没有记录是否必填
+42128 小程序详情,选中输入框后,提示变黑了
+42118 点击ai导航,会跳转到后台
+42114 小程序详情内,发送的消息过短时,留白的区域有点多
+42109 小程序详情点击重新加载后,显示了聊天内容
+42107 没有配置语言模型时,点击生成和重新生成按钮还是会发送消息
+41683 小程序详情页,图标icon超出了背景图片
+41471 小程序广场,除了收藏、发现、最新分类下,其他分类下的小程序卡片也展示分类标签了
+41468 小程序广场,鼠标悬浮到卡片里的简介,没有展示title
+41465 小程序卡片,名称过长没有截断
+41456 小程序广场,图标icon有遮挡
+41408 小程序的提词模板过长时,生成的消息没有换行
+41404 分类下的小程序都被禁用后,ai小程序列表仍然展示该分类
+41402 打开小程序功能页后,再打开后台模块,后台模块导航显示为【AI】
+41400 ai对话返回的时间有误
+41378 用户没有收藏小程序,我的收藏tab仍然在页面展示
+41376 ai小程序广场,发现tab下没有展示全量的已发布小程序
+41370 禁用被收藏的小程序,下架后小程序面板仍然展示该小程序
+41313 小程序广场,展示了没有发布小程序的分类
+41310 输入域有内容时,右下角的发送按钮仍然是置灰状态
+41309 小程序详情,输入域的光标位置有误
+41133 小程序的默认背景色没有展示在第一个
+41132 小程序的模块树,保存了空数据
+41128 小程序详情,提词模板中被引用的字段没有高亮
+41126 在小程序列表点击发布按钮,触发的弹窗没有在页面居中
+41124 【小程序】小程序详情页的历史记录,编辑操作里没有显示具体编辑的内容
+41121 创建小程序,名称、简介、字段名称没有长度限制
+41078 在小程序详情页删除小程序后,没有返回列表页
+41076 详情页的小程序图标,点击后没有放大
+41074 编辑了小程序一次,但是生成了两条工作流数据
+41073 【小程序】创建、编辑小程序,最新动态显示错误
+41071 小程序添加单选或多选字段,选项过多时,会遮挡保存按钮
+41066 小程序在调试弹窗中,提词预览展示有误
+41056 小程序详情页,填写提示没有title
+41055 小程序详情,提词模板过长时,展示了多余的横向滚动条
+41053 小程序单选和多选是否必填选否,但是详情页中仍然显示是必填
+41049 未发布小程序操作列表中,发布按钮只读了
+41048 【小程序】调试页面发布小程序,没有触发弹窗:“您确定要发布吗?发布后将在客户端前台小程序广场显示”
+41047 小程序调试页面,提词预览中的多选只带出了一个选项
+41044 小程序详情中,禁用操作叫下架
+41043 小程序详情,阶段没有带出值
+41002 小程序列表为空时,展示有误
+41000 提词设计没有placeholder
+40950 小程序页面,点击保存按钮后,没有保存成功toast
+40949 小程序提词设计输入域,没有加必填项验证
+40948 【小程序】保存后,内容调试区的内容没有被保存
+企业版:
+40953 任务树状图导出内容为空
+40899 维护权限分组视野后一级导航中显示不正确
+40558 在产品计划详情中点击新增的工作流动作,页面空白
+40344 用例库页面按自定义字段执行搜索时页面SQL报错
+40331 套件详情页点击发起后代码报错
+40328 任务列表按自定义工作流字段执行搜索时代码报错
+40240 套件新字段设置后,在概况页不显示
+40212 反馈详情和列表不显示新增字段信息
+40107 查看实践库页面代码报错
+39834 发布工作流显示位置选择一级导航,普通用户不显示新增的工作流
+39788 运营管理界面提反馈,所属产品没有数据
+39332 部分反馈操作无法触发通知
+40612 定时任务执行不成功
+39977 配置https的collabora服务后,在文档创建word会报错
+44013 大屏中拖入透视表,发布后数据被表头遮挡
+40455 大屏设计是透视表和图表的显示顺序与前台不一致
+IPD版:
+45252 编辑反馈提示访问对象不存在,点击确定后页面代码报错
+43596 工作流-审批设置,无法通过权限控制到,只有admin账户才能开启
+40589 视野维护权限不生效
+39648 研发需求创建页面中选到用户需求
+45895 项目型项目编辑后变成了产品型项目
+45719 需求与市场管理界面管理员分组勾选全部权限之后依然无法看到人员功能导航
+45666 IPD 版敏捷项目的研发需求列表页面,搜索后,需求的所属计划字段被隐藏
+38962 任务详情页面没有日志操作
+44132 变更需要进行评审的需求,通过批量评审按钮不生效
+45250 OR界面反馈设置页面显示了待立项产品
+
+2024-01-17 18.10.1(ipd1.2)
+完成的需求
+IPD版:
+50111 调研任务列表中在任务名称前面显示优先级
+50928 提需求或复制需求页面中所属产品可以展示所有有权限查看的产品
+50936 阶段设置页面增加阶段是否允许并行的设置
+51458 调研阶段设置页面中去掉迭代代号
+51540 需求池需求增加通知功能
+51651 需求池增加通知功能
+51652 需求池列表中字段信息不折行显示
+51653 需求池需求复制页面中可以调整所属需求池
+51655 需求池可以绑定产品
+51657 已分发需求实现撤回功能
+51659 需求池需求搜索条件中将所属产品为"空"的条件调整为"待定"
+51764 复制需求池需求可以带入附件
+51786 需求池需求详情页面在分发的用户需求列表中增加所属路标信息
+51812 创建项目时在关联产品和路标的右侧增加将用户需求关联到项目中的选项
+51813 IPD项目在关联用户需求页面的搜索条件中增加所属路标字段
+51814 创建非IPD类型的项目时可以选择所属Charter
+51815 产品型项目中增加用户需求功能
+51823 OR界面创建和编辑产品页面可以选择产品线
+51842 需求池需求详情中可以展示分发后的一个或多个用户需求信息
+51845 调整需求分发页面的交互逻辑
+51936 关联路标的项目中用户需求列表增加按路标关联用户需求功能
+51984 OR界面的产品列表中可以维护产品线
+51985 OR界面的产品列表中可以展示项目集、产品线、产品的层级
+51991 OR界面产品列表的搜索条件中增加所属项目集和产品线字段
+51992 需求池需求提交、需求详情和编辑页面中将所属产品字段调整为分发产品
+51995 需求池没有绑定产品时需求可以分发到多个产品
+51997 需求池绑定产品后需求可以分发到绑定产品中
+52658 需求编辑页面中实现解除与已分发产品的关联关系
+52111 撤回的用户需求影响到其他对象时,其他对象增加确认操作
+修复的Bug
+43006 调研的阶段列表下搜索报错
+43126 复制需求池需求时选择父需求,保存报错
+
2024-01-26 20.0.beta1
完成的需求
52080 创建项目集表单样式调整
@@ -2284,6 +2573,193 @@
44300 【20版本】执行列表批量修改状态后台发送了两次请求
44714 【20版本】地盘/贡献/任务列表中的任务进行编辑后无法保存
+2023-12-18 18.10
+完成的需求
+开源版:
+50474 调整用例列表中自动化checkbox的逻辑
+50475 调整自动化用例图标的展示位置和样式
+50630 项目型项目中激活状态且没有分解任务的软件需求支持细分操作
+50669 测试单的参与人可以在地盘待处理中查看到该测试单
+50747 创建文档时可以进入上次使用的编辑器页面
+50781 历史记录的排序方式增加cookie记录功能
+50937 Bug确认页面增加截止日期的设置
+50939 用例库用例增加从其他用例库导入功能
+50944 用例的自动化字段支持搜索功能
+51049 项目中多个测试单可以生成一份测试报告
+51176 将禅道中的logo都更新为最新版本
+51177 禅道版本信息与版本号之间增加空格间隔
+51227 测试单用例列表中所属模块增加显示设置功能
+49435 透视表汇总数据后表头无序排列
+50718 浏览器页面拖动条问题
+50740 度量项采集和储存逻辑变更
+50741 度量项数据表样式优化
+50742 度量项可视化区域新增日期筛选标签
+50744 度量项列表实现按对象分类展示,按对象、目的、时间周期排序
+50779 日期筛选标签交互与样式
+50780 度量项列表实现展开收起功能
+50938 透视表展示时分页器的优化
+50949 日志汇总表可以显示人员真实姓名
+50962 自定义透视表反馈状态不能带出汉字
+51001 大屏中表格的表头冻结展示
+企业版:
+51227 测试单用例列表中所属模块增加显示设置功能
+50747 创建文档时可以进入上次使用的编辑器页面
+50669 测试单的参与人可以在地盘待处理中查看到该测试单
+42099 将学堂课程和实践库查看权限设置为默认权限
+47814 调整执行甘特图的显示设置功能
+50329 反馈转软件需求页面可以自动带入反馈中的附件
+50330 反馈转用户需求页面可以自动带入反馈中的附件
+50331 反馈转任务页面可以自动带入反馈中的附件
+50332 反馈转Bug页面可以自动带入反馈中的附件
+50333 反馈转工单页面可以自动带入反馈中的附件
+50336 反馈列表中实现从反馈创建工单的功能
+50379 执行甘特图中在任务名称前显示优先级
+50396 后台系统功能开关中增加学堂功能的配置
+50645 创建反馈页面增加抄送给字段
+50646 编辑反馈页面增加抄送给字段
+50647 创建反馈页面增加关键词字段
+50648 编辑反馈页面增加关键词字段
+50649 反馈详情页面增加关键词的显示
+50651 反馈搜索条件中增加关键词字段
+50660 工单增加必填项的自定义功能
+50678 导出文档时可以按word宽度自动处理图片显示比例
+50818 导出任务的字段中增加所属项目字段
+51138 工单转软件需求页面可以自动带入工单中的附件
+51139 工单转Bug页面可以自动带入工单中的附件
+50677 实现大屏引用水球图的功能
+50679 内置大屏中环形图改为水球图
+50680 图表中内置水球图支持在前台展示
+50719 待处理度量项计算规则调整
+50782 不同分辨率下度量项查看页面列表与内容区域自适应规则
+50877 数据表样式交互规则
+旗舰版:
+50189 基线评审页面中增加上传附件功能
+50400 在审批进度页面中查看评审时上传的附件
+50761 项目评审文件可以在评审详情中显示
+修复的Bug
+开源版:
+39991 批量指派bug会清空抄送人
+40128 项目下关联研发需求后页面不对
+40144 低版本数据库安装禅道报错
+39984 在后台维护某个角色分组的视野中的“可访问项目集”后,反而无法访问设置的项目集
+40783 win一键安装包,第一次启动时RoadRunner安装失败
+41364 系统度量项的分页显示有问题
+41357 系统下的度量项数据中显示暂时没有记录
+41360 组合查看时,我收藏的列表为空
+41359 组合查看时度量项名称被遮挡
+41356 按周统计的度量项数据中没有显示X周
+41403 度量项展示列宽显示不准确
+40764 对无迭代项目任务列表排序,跳转其他执行任务列表
+40373 项目型项目在项目-测试-用例下无法看到在测试-用例下创建的用例
+41610 安装时,如果没有 tmp/cache 目录,先尝试创建。
+企业版:
+41104 旗舰版拖拽透视表进入大屏不能拖拽名字
+40927 自定义透视表无法完全删除
+40928 饼图计算错误
+旗舰版:
+34959 同个阶段在阶段列表和甘特图的计划开始、计划完成时间不一致
+
+2023-11-09 18.9
+完成的需求
+开源版:
+49595 用例列表中从用例库导入用例后增加结果提示
+43540 无迭代项目中多个测试单可以生成一份测试报告
+49957 调整项目集进度的计算公式
+36430 视频类型附件增加在线预览功能
+48754 创建测试报告时可以直接带入参与人
+49603 测试单列表增加“我参与的”标签
+49610 测试单相关通知需要通知到参与人
+49611 测试单增加参与人
+49802 在文档列表页增加上传文档入口
+49831 实现我的空间、产品空间、项目空间、团队空间上传文档的步骤
+49901 文档上传后在列表中的显示形式
+50328 文档上传后在详情中的显示形式
+50650 禅道登录页增加AI入驻的提示信息
+50523 禅道AI落地页描述
+50524 禅道AI会话页面描述
+50525 禅道AI页面特殊情况描述
+50528 实现用户在与AI对话或成员聊天时的新消息提醒设计
+50540 实现AI对话语言模型异常时的提醒设计
+企业版:
+43126 提交反馈时可以自动带入产品和模块信息
+42694 项目型项目中反馈转软件需求后直接关联到项目软件需求列表
+42695 项目型项目中反馈转用户需求后直接关联到项目用户需求列表
+40659 文档附件库的附件增加导出功能
+50495 后台权限增加附件库导出的权限
+50103 图表设计器中x,y轴刻度标签增加旋转展示配置项
+50194 大屏设计器中图表实现图表的配置项优化
+50195 大屏设计器实现透视表的配置项优化
+50219 透视表设计器支持设置显示原始条目的列
+50220 透视表设计器实现展示原始条目列规则
+50321 透视表设计器支持设置5级行分组(旗舰版)
+50208 图表升级为新版图表
+旗舰版:
+50078 调整瀑布项目进度计算规则
+50079 更新瀑布项目仪表盘中项目进度的提示信息
+35032 瀑布项目的评审检查单分类增加自定义功能
+46632 基线评审中将评审人员字段名称调整为由谁评审
+47815 审批流中给审批人和抄送人发送不同的通知内容
+50234 融合瀑布项目的评审检查单分类增加自定义功能
+50286 调整审批结果通知文案
+50312 基线评审中新增评审人员字段
+修复的Bug
+开源版:
+38634 项目描述字段导出 不要带有 html 标签
+37133 需求变更评审人不会触发需求评审
+37690 进入测试单概况,进行了关闭或激活操作后,“返回”键全部失效
+38009 搜索“所属模块”的下拉项无法加载分支/平台的模块
+37264 项目-迭代列表和仪表盘工时统计与实际任务总预计工时不匹配
+37517 项目卡片中剩余工时重复统计了父子任务
+35265 已关闭执行的测试单无法查看测试报告
+37296 不需要评审的“用户需求”和“研发需求”在创建后历史记录里没有创建的信息记录
+37251 任务列表导入bug搜索异常
+37134 集成版本的测试单在项目中不显示
+39553 用例列表自定义列存在两个优先级
+39554 用例列表[所属模块][所属场景]列内容不显示
+37691 markdown文档再次编辑无法发布
+39605 bug标题太窄显示不全
+39750 RESTful接口创建需求报错
+35342 工时列表中总计消耗名称改为消耗
+39565 bug列表排序功能无效
+39660 18.7版本项目研发需求列表中,点击按优先级排序,无法排序且会跳转到产品页面
+40217 权限组设置视野维护添加可访问项目集后,登录报错
+39924 需求列表选择模块,左侧模块树不在选择模块上
+40274 后台2.5级导航切换到DevOps设置后2.5级下拉框展示错误
+40144 低版本数据库安装禅道报错
+40128 项目下关联研发需求后页面不对
+39991 批量指派bug会清空抄送人
+39984 在后台维护某个角色分组的视野中的“可访问项目集”后,反而无法访问设置的项目集
+企业版:
+39479 评论反馈之后页面无法跳转
+39352 组织日志中按照项目查看无法查看已关闭的项目
+37941 产品列表激活bug数量统计不准确
+37414 工作流增加的字段批量创建时提示必填
+38993 反馈列表页面无法看到『反馈公司』字段的值
+38458 BI-大屏中数据统计不准确
+37199 bug日志编辑时丢失产品项目迭代信息
+39065 取消分配工作流更多设置页面全部权限后访问更多设置页面报错
+39016 工作流程审批页面点击保存后有报错
+37275 Excel无法导出全部数据
+37336 导入Bug,列出非当前产品关联的执行
+34611 创建透视表弹窗,名称文本框和输入框没有对齐,也没有必填项标识
+40014 后台权限列表页代码报错
+34620 内置的透视表和图表创建者统一修改为“系统”
+38459 对自定义数据表进行字段名设置时浏览器报错
+38600 透视表设计显示重复变量代号
+39882 BI大屏中添加内置的透视表,统计数据显示不一致
+35720 透视表用户相关的显示为用户名
+40150 工作流扩展测试单的子状态后,测试单页面报错
+40235 反馈列表自定义列中,设置“所属模块”后,列表中没有“所属模块”的数据显示
+39983 bug列表页面导入excel页面js处理异常
+40276 DevOps问题列表下增加了对比三级导航
+39887 一次上传多个课程包时提示没有找到YAML文件
+39880 课程包上传之后提示没有课程包里没有yaml文件
+39757 选择多个文档导出为压缩包后,对应压缩包中没有内容
+39755 选择多个文档导出为合并文档后,对应文档中没有内容
+旗舰版:
+40047 项目关联研发需求报错
+39572 在执行-任务界面,全选当前页面的100个任务,点击“编辑”→“关闭”之后,界面没有任何反应,无法批量关闭任务
+
2023-09-28 18.8
完成的需求
开源版:
diff --git a/module/misc/lang/de.php b/module/misc/lang/de.php
index 1c5a0b9c42..d989f630d6 100644
--- a/module/misc/lang/de.php
+++ b/module/misc/lang/de.php
@@ -57,6 +57,8 @@ $lang->misc->zentao->others['zdoo'] = "
Y Disk";
$lang->misc->zentao->others['meshiot' ] = "
MeshioT";
+$lang->misc->mobile = "Mobiler Zugriff";
+$lang->misc->noGDLib = "Bitte benutzen Sie den Browser Ihres Telefons um die Seite %s aufzurufen";
$lang->misc->copyright = "© 2009 - " . date('Y') . " Nature Easy Soft Network Technology Co,LTD Email Max@easysoft.ltd";
$lang->misc->checkTable = "Prüfe Datentabellen";
$lang->misc->needRepair = "Repariere Datentabellen";
@@ -111,6 +113,8 @@ $lang->misc->feature->promptExecImage = 'theme/default/images/main/prompt_exec
$lang->misc->feature->promptLearnMore = 'https://www.zentao.net/book/zentaopms/1097.html';
/* Release Date. */
+$lang->misc->releaseDate['18.11'] = '2024-02-28';
+$lang->misc->releaseDate['18.10.1'] = '2024-01-17';
$lang->misc->releaseDate['20.0.beta1'] = '2024-01-26';
$lang->misc->releaseDate['20.0.alpha1'] = '2024-01-08';
$lang->misc->releaseDate['18.10'] = '2023-12-18';
@@ -219,6 +223,8 @@ $lang->misc->releaseDate['7.1.stable'] = '2015-03-07';
$lang->misc->releaseDate['6.3.stable'] = '2014-11-07';
/* Release Detail. */
+$lang->misc->feature->all['18.11'][] = array('title' => "We have successfully implemented AI mini-program functionality, integrating measurement metrics and global filtering capabilities into the large-screen display. Additionally, we have added feedback functionality to the OR interface. Furthermore, we have enabled the inclusion of keywords in the Requirement Management Hub, allowing for the redistribution of requirements in the Requirement Management Hub once a user's requirement has been withdrawn.", 'desc' => '');
+$lang->misc->feature->all['18.10.1'][] = array('title' => 'The Requirement Management Hub (RM Hub) now includes notification functionality, supports product line features, and allows for distributing a single requirement to multiple products.', 'desc' => '');
$lang->misc->feature->all['20.0.beta1'][] = array('title' => 'This release mainly involves a large-scale refactoring of the code and a brand new upgrade to the user interface (UI), bringing better product performance, stronger security, and a more user-friendly experience.', 'desc' => '');
$lang->misc->feature->all['20.0.alpha1'][] = array('title' => 'Internal release of comprehensive user interface (UI) upgrades for large-scale refactoring and reconstruction.', 'desc' => '');
$lang->misc->feature->all['18.10'][] = array('title' => 'The use case library offers the capability to import test cases from other libraries, enables document export with image proportions automatically adjusted to fit Word, includes the addition of cookie records to the history record sorting method, and incorporates optimized logic for modifying logs of other users.When converting feedback or tickets, attachments can now be automatically included. Feedback functionality has been enhanced with the addition of keywords and CC fields. Additionally, a new water drop chart type has been introduced, and improvements have been made to the logic and visual presentation of metric collection.', 'desc' => '');
diff --git a/module/misc/lang/en.php b/module/misc/lang/en.php
index 6cf9e37f6b..553fbcf4d9 100644
--- a/module/misc/lang/en.php
+++ b/module/misc/lang/en.php
@@ -57,6 +57,8 @@ $lang->misc->zentao->others['zdoo'] = "
Y Disk";
$lang->misc->zentao->others['meshiot' ] = "
MeshioT";
+$lang->misc->mobile = "Mobile Access";
+$lang->misc->noGDLib = "Please visit %s in the browser of your phone.";
$lang->misc->copyright = "© 2009 - " . date('Y') . " ZenTao Software Email Renee@easycorp.ltd";
$lang->misc->checkTable = "Check Data Table";
$lang->misc->needRepair = "Repair Table";
@@ -111,6 +113,8 @@ $lang->misc->feature->promptExecImage = 'theme/default/images/main/prompt_exec
$lang->misc->feature->promptLearnMore = 'https://www.zentao.net/book/zentaopms/1097.html';
/* Release Date. */
+$lang->misc->releaseDate['18.11'] = '2024-02-28';
+$lang->misc->releaseDate['18.10.1'] = '2024-01-17';
$lang->misc->releaseDate['20.0.beta1'] = '2024-01-26';
$lang->misc->releaseDate['20.0.alpha1'] = '2024-01-08';
$lang->misc->releaseDate['18.10'] = '2023-12-18';
@@ -219,6 +223,8 @@ $lang->misc->releaseDate['7.1.stable'] = '2015-03-07';
$lang->misc->releaseDate['6.3.stable'] = '2014-11-07';
/* Release Detail. */
+$lang->misc->feature->all['18.11'][] = array('title' => "We have successfully implemented AI mini-program functionality, integrating measurement metrics and global filtering capabilities into the large-screen display. Additionally, we have added feedback functionality to the OR interface. Furthermore, we have enabled the inclusion of keywords in the Requirement Management Hub, allowing for the redistribution of requirements in the Requirement Management Hub once a user's requirement has been withdrawn.", 'desc' => '');
+$lang->misc->feature->all['18.10.1'][] = array('title' => 'The Requirement Management Hub (RM Hub) now includes notification functionality, supports product line features, and allows for distributing a single requirement to multiple products.', 'desc' => '');
$lang->misc->feature->all['20.0.beta1'][] = array('title' => 'This release mainly involves a large-scale refactoring of the code and a brand new upgrade to the user interface (UI), bringing better product performance, stronger security, and a more user-friendly experience.', 'desc' => '');
$lang->misc->feature->all['20.0.alpha1'][] = array('title' => 'Internal release of comprehensive user interface (UI) upgrades for large-scale refactoring and reconstruction.', 'desc' => '');
$lang->misc->feature->all['18.10'][] = array('title' => 'The use case library offers the capability to import test cases from other libraries, enables document export with image proportions automatically adjusted to fit Word, includes the addition of cookie records to the history record sorting method, and incorporates optimized logic for modifying logs of other users.When converting feedback or tickets, attachments can now be automatically included. Feedback functionality has been enhanced with the addition of keywords and CC fields. Additionally, a new water drop chart type has been introduced, and improvements have been made to the logic and visual presentation of metric collection.', 'desc' => '');
diff --git a/module/misc/lang/fr.php b/module/misc/lang/fr.php
index fc1b996e78..061e76baea 100644
--- a/module/misc/lang/fr.php
+++ b/module/misc/lang/fr.php
@@ -57,6 +57,8 @@ $lang->misc->zentao->others['zdoo'] = "
Y Disk";
$lang->misc->zentao->others['meshiot' ] = "
MeshioT";
+$lang->misc->mobile = "Accès Mobile";
+$lang->misc->noGDLib = "SVP visitez %s via le navigateur de votre smartphone.";
$lang->misc->copyright = "© 2009 - " . date('Y') . " Nature Easy Soft Email Renee@easysoft.ltd";
$lang->misc->checkTable = "Vérifiez les Données de la Table";
$lang->misc->needRepair = "Réparer la Table";
@@ -111,6 +113,8 @@ $lang->misc->feature->promptExecImage = 'theme/default/images/main/prompt_exec
$lang->misc->feature->promptLearnMore = 'https://www.zentao.net/book/zentaopms/1097.html';
/* Release Date. */
+$lang->misc->releaseDate['18.11'] = '2024-02-28';
+$lang->misc->releaseDate['18.10.1'] = '2024-01-17';
$lang->misc->releaseDate['20.0.beta1'] = '2024-01-26';
$lang->misc->releaseDate['20.0.alpha1'] = '2024-01-08';
$lang->misc->releaseDate['18.10'] = '2023-12-18';
@@ -219,6 +223,8 @@ $lang->misc->releaseDate['7.1.stable'] = '2015-03-07';
$lang->misc->releaseDate['6.3.stable'] = '2014-11-07';
/* Release Detail. */
+$lang->misc->feature->all['18.11'][] = array('title' => "We have successfully implemented AI mini-program functionality, integrating measurement metrics and global filtering capabilities into the large-screen display. Additionally, we have added feedback functionality to the OR interface. Furthermore, we have enabled the inclusion of keywords in the Requirement Management Hub, allowing for the redistribution of requirements in the Requirement Management Hub once a user's requirement has been withdrawn.", 'desc' => '');
+$lang->misc->feature->all['18.10.1'][] = array('title' => 'The Requirement Management Hub (RM Hub) now includes notification functionality, supports product line features, and allows for distributing a single requirement to multiple products.', 'desc' => '');
$lang->misc->feature->all['20.0.beta1'][] = array('title' => 'This release mainly involves a large-scale refactoring of the code and a brand new upgrade to the user interface (UI), bringing better product performance, stronger security, and a more user-friendly experience.', 'desc' => '');
$lang->misc->feature->all['20.0.alpha1'][] = array('title' => 'Internal release of comprehensive user interface (UI) upgrades for large-scale refactoring and reconstruction.', 'desc' => '');
$lang->misc->feature->all['18.10'][] = array('title' => 'The use case library offers the capability to import test cases from other libraries, enables document export with image proportions automatically adjusted to fit Word, includes the addition of cookie records to the history record sorting method, and incorporates optimized logic for modifying logs of other users.When converting feedback or tickets, attachments can now be automatically included. Feedback functionality has been enhanced with the addition of keywords and CC fields. Additionally, a new water drop chart type has been introduced, and improvements have been made to the logic and visual presentation of metric collection.', 'desc' => '');
diff --git a/module/misc/lang/zh-cn.php b/module/misc/lang/zh-cn.php
index 96367d0784..b23a46bbdd 100644
--- a/module/misc/lang/zh-cn.php
+++ b/module/misc/lang/zh-cn.php
@@ -57,6 +57,8 @@ $lang->misc->zentao->others['xuanxuan'] = "
悦库网盘";
$lang->misc->zentao->others['meshiot' ] = "
易天物联";
+$lang->misc->mobile = "手机访问";
+$lang->misc->noGDLib = "请用手机浏览器访问:%s";
$lang->misc->copyright = "© 2009 - " . date('Y') . " 禅道软件(青岛)有限公司 电话:4006-8899-23 Email:co@zentao.net QQ:1492153927";
$lang->misc->checkTable = "检查修复数据表";
$lang->misc->needRepair = "修复表";
@@ -111,6 +113,8 @@ $lang->misc->feature->promptExecImage = 'theme/default/images/main/prompt_exec
$lang->misc->feature->promptLearnMore = 'https://www.zentao.net/book/zentaopms/1097.html';
/* Release Date. */
+$lang->misc->releaseDate['18.11'] = '2024-02-28';
+$lang->misc->releaseDate['18.10.1'] = '2024-01-17';
$lang->misc->releaseDate['20.0.beta1'] = '2024-01-26';
$lang->misc->releaseDate['20.0.alpha1'] = '2024-01-08';
$lang->misc->releaseDate['18.10'] = '2023-12-18';
@@ -219,6 +223,8 @@ $lang->misc->releaseDate['7.1.stable'] = '2015-03-07';
$lang->misc->releaseDate['6.3.stable'] = '2014-11-07';
/* Release Detail. */
+$lang->misc->feature->all['18.11'][] = array('title' => '实现AI小程序功能,实现大屏引用度量项、全局筛选器功能,OR界面实现反馈功能,需求池需求增加关键词,撤回用户需求后需求池需求可以再次分发。', 'desc' => '');
+$lang->misc->feature->all['18.10.1'][] = array('title' => '需求池增加通知功能,支持产品线功能,支持一个需求分发到多个产品。', 'desc' => '');
$lang->misc->feature->all['20.0.beta1'][] = array('title' => '本次发布主要对代码进行了大规模重构,同时对用户界面(UI)进行了全新升级,带来了更好的产品性能、更强的安全性和更友好的用户体验。', 'desc' => '');
$lang->misc->feature->all['20.0.alpha1'][] = array('title' => '针对大规模重构重构,全面升级用户界面(UI)的内部发布。', 'desc' => '');
$lang->misc->feature->all['18.10'][] = array('title' => '用例库可以从其他用例库导入用例,文档导出可以按Word自适应图片比例,历史记录排序方式增加cookie记录,优化修改他人日志逻辑。反馈、工单转化时可自动带入附件,反馈增加关键词、抄送字段,图表类型新增水球图,优化度量项的采集逻辑和展示样式。', 'desc' => '');
diff --git a/module/upgrade/config.php b/module/upgrade/config.php
index 796c0e99f1..7e6a279ca3 100644
--- a/module/upgrade/config.php
+++ b/module/upgrade/config.php
@@ -44,7 +44,8 @@ $config->upgrade->maxVersion['max4_7'] = '18_7';
$config->upgrade->maxVersion['max4_8'] = '18_8';
$config->upgrade->maxVersion['max4_9'] = '18_9';
$config->upgrade->maxVersion['max4_10'] = '18_10';
-$config->upgrade->maxVersion['max4_10_1'] = '18_10_1'; // max insert position.
+$config->upgrade->maxVersion['max4_10_1'] = '18_10_1';
+$config->upgrade->maxVersion['max4_11'] = '18_11'; // max insert position.
$config->upgrade->bizVersion = array();
$config->upgrade->bizVersion['biz1_0'] = '9_5_1';
@@ -127,7 +128,8 @@ $config->upgrade->bizVersion['biz8_7'] = '18_7';
$config->upgrade->bizVersion['biz8_8'] = '18_8';
$config->upgrade->bizVersion['biz8_9'] = '18_9';
$config->upgrade->bizVersion['biz8_10'] = '18_10';
-$config->upgrade->bizVersion['biz8_10_1'] = '18_10_1'; // biz insert position.
+$config->upgrade->bizVersion['biz8_10_1'] = '18_10_1';
+$config->upgrade->bizVersion['biz8_11'] = '18_11'; // biz insert position.
$config->upgrade->proVersion = array();
$config->upgrade->proVersion['pro1_0'] = '3_1';
@@ -247,7 +249,8 @@ $config->upgrade->ipdVersion['ipd1_0_2'] = '18_7';
$config->upgrade->ipdVersion['ipd1_1'] = '18_8';
$config->upgrade->ipdVersion['ipd1_1_1'] = '18_9';
$config->upgrade->ipdVersion['ipd1_1_2'] = '18_10';
-$config->upgrade->ipdVersion['ipd1_2'] = '18_10_1'; // ipd insert position.
+$config->upgrade->ipdVersion['ipd1_2'] = '18_10_1';
+$config->upgrade->ipdVersion['ipd1_3'] = '18_11'; // ipd insert position.
$config->upgrade->lowerTables = array();
$config->upgrade->lowerTables[$config->db->prefix . 'caseStep'] = $config->db->prefix . 'casestep';
@@ -669,6 +672,7 @@ $config->delete['18_4_alpha1'][] = 'module/report/view/preview.html.php';
$config->delete['18_4_alpha1'][] = 'module/report/view/productsummary.html.php';
$config->delete['18_4_alpha1'][] = 'module/report/view/projectdeviation.html.php';
$config->delete['18_4_alpha1'][] = 'module/report/view/workload.html.php';
+$config->delete['18_4_alpha1'][] = 'module/report/zen.php';
$config->delete['18_4'][] = 'extension/biz/dataview/config.php';
$config->delete['18_4'][] = 'extension/biz/dataview/control.php';
@@ -999,7 +1003,7 @@ $config->delete['20.0.beta1'][] = 'extension/max/bug/ext/view/import.html.php';
$config->upgrade->openModules = array('action', 'admin', 'ai', 'api', 'automation', 'backup', 'block', 'branch', 'budget', 'bug', 'build', 'caselib', 'chart', 'ci', 'client', 'common', 'company', 'compile', 'convert', 'cron', 'custom', 'datatable', 'dataview', 'dept', 'design', 'dev', 'dimension', 'doc', 'durationestimation', 'entry', 'execution', 'extension', 'file', 'git', 'gitlab', 'group', 'holiday', 'im', 'index', 'index.html', 'install', 'issue', 'jenkins', 'job', 'kanban', 'license', 'mail', 'message', 'metric', 'misc', 'mr', 'my', 'personnel', 'pipeline', 'product', 'productplan', 'productset', 'program', 'programplan', 'project', 'projectbuild', 'projectplan', 'projectrelease', 'projectstory', 'pivot', 'qa', 'release', 'repo', 'report', 'risk', 'score', 'screen', 'search', 'setting', 'sonarqube', 'sso', 'stage', 'stakeholder', 'story', 'subject', 'svn', 'task', 'testcase', 'testreport', 'testsuite', 'testtask', 'todo', 'tree', 'tutorial', 'upgrade', 'user', 'webhook', 'weekly', 'workestimation', 'gitea', 'gogs', 'transfer', 'zahost', 'zanode', 'editor', 'charter', 'roadmap', 'account', 'artifactrepo', 'cne', 'host', 'instance', 'ops', 'serverroom', 'space', 'store', 'system', 'solution');
-$config->upgrade->unsetModules = array('design', 'program', 'programplan', 'projectbuild', 'projectrelease', 'stage', 'stakeholder', 'product', 'branch', 'productplan', 'release', 'build', 'qa', 'bug', 'testcase', 'testtask', 'testreport', 'testsuite', 'caselib', 'automation', 'repo', 'ci', 'compile', 'jenkins', 'job', 'svn', 'gitlab', 'sonarqube', 'mr', 'git', 'report', 'sqlbuilder', 'feedback', 'faq', 'attend', 'holiday', 'leave', 'makeup', 'overtime', 'lieu', 'ops', 'host', 'serverroom', 'account', 'domain', 'service', 'deploy', 'conference', 'traincourse', 'pssp', 'baseline', 'classify', 'cm', 'cmcl', 'auditcl', 'reviewcl', 'process', 'activity', 'zoutput', 'auditplan', 'nc', 'subject', 'weekly', 'workestimation', 'issue', 'durationestimation', 'risk', 'opportunity', 'trainplan', 'gapanalysis', 'researchplan', 'researchreport', 'meeting', 'meetingroom', 'budget', 'reviewissue', 'reviewsetting', 'review', 'milestone', 'assetlib', 'setting', 'im', 'client', 'ldap', 'dev', 'api', 'gitea', 'gogs', 'zanode', 'zahost');
+$config->upgrade->unsetModules = array('design', 'program', 'programplan', 'projectbuild', 'projectrelease', 'stage', 'stakeholder', 'product', 'branch', 'productplan', 'release', 'build', 'qa', 'bug', 'testcase', 'testtask', 'testreport', 'testsuite', 'caselib', 'automation', 'repo', 'ci', 'compile', 'jenkins', 'job', 'svn', 'gitlab', 'sonarqube', 'mr', 'git', 'report', 'sqlbuilder', 'feedback', 'faq', 'attend', 'holiday', 'leave', 'makeup', 'overtime', 'lieu', 'ops', 'host', 'serverroom', 'account', 'domain', 'service', 'deploy', 'conference', 'traincourse', 'pssp', 'baseline', 'classify', 'cm', 'cmcl', 'auditcl', 'reviewcl', 'process', 'activity', 'zoutput', 'auditplan', 'nc', 'subject', 'weekly', 'workestimation', 'issue', 'durationestimation', 'risk', 'opportunity', 'trainplan', 'gapanalysis', 'researchplan', 'researchreport', 'meeting', 'meetingroom', 'budget', 'reviewissue', 'reviewsetting', 'review', 'milestone', 'measurement', 'measrecord', 'assetlib', 'setting', 'im', 'client', 'ldap', 'dev', 'api', 'gitea', 'gogs', 'zanode', 'zahost');
global $lang;
$config->upgrade->defaultActions = array();
@@ -1056,6 +1060,10 @@ $config->upgrade->recoveryActions->testcase->review['position'] = 'browseandview
$config->upgrade->missedFlowFieldVersions = array('max4_4_alpha1', 'max4_4_beta1', 'max4_4', 'max4_5', 'biz8_4_alpha1', 'biz8_4_beta1', 'biz8_4', 'biz8_5');
+$config->upgrade->dbFieldLengths['int'] = array('tinyint' => 4, 'smallint' => 6, 'mediumint' => 9, 'int' => 11, 'integer' => 11, 'bigint' => 20);
+$config->upgrade->dbFieldLengths['unsigned'] = array('tinyint' => 3, 'smallint' => 5, 'mediumint' => 8, 'int' => 10, 'integer' => 10, 'bigint' => 20);
+$config->upgrade->dbFieldLengths['text'] = array('tinytext' => 8, 'text' => 16, 'mediumtext' => 24, 'longtext' => 32);
+
$config->upgrade->editors['doc'] = array('table' => TABLE_DOCCONTENT, 'fields' => 'doc,`content`,`digest`');
$config->upgrade->editors['project'] = array('table' => TABLE_PROJECT, 'fields' => 'id,`desc`');
$config->upgrade->editors['bug'] = array('table' => TABLE_BUG, 'fields' => 'id,`steps`');
diff --git a/module/upgrade/lang/version.php b/module/upgrade/lang/version.php
index 7f8dc096a9..f26c420eb8 100644
--- a/module/upgrade/lang/version.php
+++ b/module/upgrade/lang/version.php
@@ -186,6 +186,7 @@ $lang->upgrade->fromVersions['18_8'] = '18.8';
$lang->upgrade->fromVersions['18_9'] = '18.9';
$lang->upgrade->fromVersions['18_10'] = '18.10';
$lang->upgrade->fromVersions['18_10_1'] = '18.10.1';
+$lang->upgrade->fromVersions['18_11'] = '18.11';
$lang->upgrade->fromVersions['20_0_alpha1'] = '20.0.alpha1'; // pms insert position.
global $config;
@@ -376,7 +377,8 @@ $lang->upgrade->fromVersions['biz8_7'] = 'Biz8.7';
$lang->upgrade->fromVersions['biz8_8'] = 'Biz8.8';
$lang->upgrade->fromVersions['biz8_9'] = 'Biz8.9';
$lang->upgrade->fromVersions['biz8_10'] = 'Biz8.10';
-$lang->upgrade->fromVersions['biz8_10_1'] = 'Biz8.10.1'; // biz insert position.
+$lang->upgrade->fromVersions['biz8_10_1'] = 'Biz8.10.1';
+$lang->upgrade->fromVersions['biz8_11'] = 'Biz8.11'; // biz insert position.
/* Max. */
$lang->upgrade->fromVersions['max2_0_beta4'] = 'Max2.0.beta4';
@@ -424,7 +426,8 @@ $lang->upgrade->fromVersions['max4_7'] = 'Max4.7';
$lang->upgrade->fromVersions['max4_8'] = 'Max4.8';
$lang->upgrade->fromVersions['max4_9'] = 'Max4.9';
$lang->upgrade->fromVersions['max4_10'] = 'Max4.10';
-$lang->upgrade->fromVersions['max4_10_1'] = 'Max4.10.1'; // max insert position.
+$lang->upgrade->fromVersions['max4_10_1'] = 'Max4.10.1';
+$lang->upgrade->fromVersions['max4_11'] = 'Max4.11'; // max insert position.
/* Ipd */
$lang->upgrade->fromVersions['ipd1_0_beta1'] = 'Ipd1.0.beta1';
@@ -433,4 +436,5 @@ $lang->upgrade->fromVersions['ipd1_0_1'] = 'Ipd1.0.1';
$lang->upgrade->fromVersions['ipd1_0_2'] = 'Ipd1.0.2';
$lang->upgrade->fromVersions['ipd1_1'] = 'Ipd1.1';
$lang->upgrade->fromVersions['ipd1_1_1'] = 'Ipd1.1.1';
-$lang->upgrade->fromVersions['ipd1_1_2'] = 'Ipd1.1.2'; // ipd insert position.
+$lang->upgrade->fromVersions['ipd1_1_2'] = 'Ipd1.1.2';
+$lang->upgrade->fromVersions['ipd1_2'] = 'Ipd1.2'; // ipd insert position.