禅道 给禅道缺陷增加自定义字段供不同的缺陷操作页面使用
给禅道缺陷增加自定义字段供不同的缺陷操作页面使用
by:授客 QQ:1033553122
实践环境
禅道项目管理软件9.2.1 、8.0开源Linux版
需求描述
在禅道创建、修改、查看、关闭缺陷页面添加一个自定义字段---一个单选下拉选框,并针对不同的页面做是否必填校验。
给数据库表zt_bug新增自定义字段
ALTER TABLE `zt_bug` ADD COLUMN source VARCHAR(100) AFTER severity
修改zentaopms/module/bug/lang/zh-cn.php
如下图,新增图示选框Bug字段,即在合适的位置插入以下代码
$lang->bug->source = 'Bug根源';
如下图,在合适的位置插入以下代码
$lang->bug->sourceList['codeerror'] = '产品设计缺陷';
$lang->bug->sourceList['bug'] = '程序编码错误';
说明:这里定义的'产品设计缺陷'和'程序编码错误'用于存放对应字段select下拉选框中的数据,上述'bug','productDesign',创建Bug/编辑Bug并保存后,会被存储到数据库中。
注意:笔者使用的禅道,语言设置的是中文,所以仅修改zh-cn.php,不修改英文en.php和tw.php
修改zentaopms/module/bug/view/create.html.php
如下图,在合适的位置插入以下代码
<tr>
<th><?php echo $lang->bug->source;?></th>
<td>
<?php echo html::select('source', $lang->bug->sourceList, $source, "class='form-control'");?></span>
</td>
</tr>
修改效果
修改zentaopms/module/bug/view/edit.html.php
如下图,在合适的位置插入以下代码
js::set('source' , $bug->source);
如下图,在合适的位置插入以下代码
<tr>
<th><?php echo $lang->bug->source;?></th>
<td><?php echo html::select('source', $lang->bug->sourceList, $bug->source, "class='form-control'");?></td>
</tr>
修改效果
当然,如果希望在编辑页面左侧展示添加的字段,如下图,也可以在合适的位置插入以下代码
<fieldset>
<legend><?php echo $lang->bug->source;?></legend>
<div class='form-group'>
<?php echo html::select('source', $lang->bug->sourceList, $bug->source, "class='form-control'");?>
</div>
</fieldset>
修改效果
修改zentaopms/module/bug/view/view.html.php
如下图,在合适的位置插入以下代码
<tr>
<th><?php echo $lang->bug->source;?></th>
<td><strong><?php echo zget($lang->bug->sourceList, $bug->source, $bug->source);?></strong></td>
</tr>
修改效果
当然,我们如果希望把新增字段放左侧页面展示,如下图,也可以在合适的位置插入以下代码
<fieldset>
<legend><?php echo $lang->bug->source;?></legend>
<div class="content">
<strong><?php echo zget($lang->bug->sourceList, $bug->source, $bug->source);?></strong>
</div>
</fieldset>
修改效果
修改zentaopms/module/bug/view/resolve.html.php
如下图,在合适的位置插入以下代码
<tr>
<th class='w-80px'><?php echo $lang->bug->source;?></th>
<td class='w-p35-f'><?php echo html::select('source', $lang->bug->sourceList,'', "class='form-control' ");?>
<font color='red'>请认真选择Bug根源分类</font></td><td></td>
</tr>
修改效果
修改zentaopms/module/bug/view/close.html.php
如下图,在合适的位置插入以下代码
js::set('source' , $bug->source);
如下图,在合适的位置插入以下代码
<tr>
<th><?php echo $lang->bug->source;?></th>
<td><?php echo html::select('source', $lang->bug->sourceList, $bug->source, "class='form-control'");?><font color='red' "class='form-control'">请确认Bug根源分类是否正确</font></td>
</tr>
修改效果
备注:提示语 “请确认Bug根源分类是否符正确”,改成 “请确认Bug根源分类是否符合实际” 会比较恰当
修改zentaopms/module/bug/config.php
如下图,可以选择创建,编辑,解决Bug时分别定义新增字段是否必填。本例中设置解决Bug时新增source字段必填
修改效果
需要注意的地方
本人实践时,想在关闭页面,把自定义字段也设置为必填,于是参考上面,在合适位置插入下图图示框选部分的代码,结果发现,自定义字段select选框右侧有红色的 * (见下图),但是提交关闭Bug请求时,并没有不为空限制
解决方法,如下,给select选框增加reuqired='true'
<tr>
<th><?php echo $lang->bug->source;?></th>
<td><?php echo html::select('source', $lang->bug->sourceList, $bug->source, "class='form-control' required='true'");?><font color='red' "class='form-control'">请确认Bug根源分类是否正确</font></td>
</tr>
修改效果如下:
如下,找到$config->bug->list->exportFields变量,增加新增的自定义字段名称,解决缺陷导出报表中没有新增字段的问题,如下
如下,找到global $lang,在其下方合适的位置新增搜索字段,即我们自定义的字段,并给字段设置可选搜索项,解决缺陷搜索中没有新增字段问题。
修改效果
修改zentaopms/module/bug/control.php
修改public function export($productID, $orderBy)函数代码,如下,在合适位置增加以下代码,解决导出报表,新增字段列的值不为设置的枚举选项值,而是为索引值问题。
if(isset($bugLang->sourceList[$bug->source])) $bug->source = $bugLang->sourceList[$bug->source];
修改效果
作者:授客
微信/QQ:1033553122
全国软件测试QQ交流群:7156436
Git地址:https://gitee.com/ishouke
友情提示:限于时间仓促,文中可能存在错误,欢迎指正、评论!
作者五行缺钱,如果觉得文章对您有帮助,请扫描下边的二维码打赏作者,金额随意,您的支持将是我继续创作的源动力,打赏后如有任何疑问,请联系我!!!
微信打赏
支付宝打赏 全国软件测试交流QQ群
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
· C++代码改造为UTF-8编码问题的总结
· DeepSeek 解答了困扰我五年的技术问题
· 为什么说在企业级应用开发中,后端往往是效率杀手?
· 用 C# 插值字符串处理器写一个 sscanf
· [翻译] 为什么 Tracebit 用 C# 开发
· 腾讯ima接入deepseek-r1,借用别人脑子用用成真了~
· Deepseek官网太卡,教你白嫖阿里云的Deepseek-R1满血版
· DeepSeek崛起:程序员“饭碗”被抢,还是职业进化新起点?
· RFID实践——.NET IoT程序读取高频RFID卡/标签