我们在项目管理中使用了trac系统,并且对于ticket添加了以下自定义字段并且对它们的格式都有一定要求:

  • svn版本号:格式为 r1234。多个版本号之间使用半角逗号隔开。如:r1234,r5678
  • 完成日期:yyyy-mm-dd的格式
  • 开发周期:表示开发功能所耗费的时间,格式为数字或者一位小数后面跟上单位h或者d。
  • 测试版本号:v开头的标准版本号,如:v2.3.1.5098

但是在实际操作中,很多开发人员不去阅读规范文档或者压根记不起来格式规范,随意填写,很是苦恼。

今天就先试图给完成日期添加一个日期插件让开发人员直接使用日期对话框来选择日期,同时发现它已经自带了格式验证,然后在寻找这个插件的同时发现了一个好用的格式验证插件https://trac-hacks.org/wiki/TracTicketValidatorPlugin

如何安装此插件就不在这里描述,直奔主题看看如何实现配置trac使插件生效。

  1. 首先要在trac的管理-插件里勾选tracticketvalidator 0.1里的所有组件(实际上只有一个TicketsValidator)。
  2. 手动打开在trac.ini,修改[ticketvalidator]段里的内容。
  3. 添加以下配置,注意的是validates项指定了要对哪些字段进行验证,这些字段名都是添加的Custom Fields的名称。每一个字段都配置一个rule和tip。rule配置项是一个正则表达式,是插件用来对修改ticket时提交的信息进行验证的(插件源码里是这样写的 re.match(rule, fieldValue) )。而tip是在验证出错之后,给用户的警告信息里显示的内容。
    svn.rule = ^(r[0-9]+)(,r[0-9]+)*$
    svn.tip = svn号请使用r开头的版本号,并且以半角逗号分割,例:r1234,r5678
    needtime.rule = ^[0-9]+(\.[0-9])?[h|d]$
    needtime.tip = 完成时间格式:以整数或一位小数开头,以h或d结束(分别表示小时和天).示例:3.1d 或 4h
    testversion.rule = ^v[0-9]+(.[0-9]+){4}$
    testversion.tip = 版本号格式: vnn.nn.nn.nn, 例v2.3.1.5098
    validates = svn,needtime,testversion

然后重启http服务器,配置就生效了,我们尝试以错误的格式修改ticket:

点击“提交变更”后显示错误警告,以及在页面顶部显示出配置的错误提示。

给trac的ticket添加提交时字段验证的更多相关文章

  1. silverlight wpf Command提交时输入验证

    silverlight 或WPF在MVVM模式中使用INotifyDataErrorInfo接口对输入进行验证时 控件lostFocus时会触发验证,但在提交动作(例如button的Command)时 ...

  2. easyui form提交时验证必填,打开时不显示必填提示

    给textbox添加required:true属性后,打开页面时整个表单都是红的,需要将其设置为提交时再验证. 解决方法:通过textbox的novalidate属性来控制是否开启验证 <inp ...

  3. vux中表单验证,在提交时自动聚焦到未验证通过的那栏;及循环表单的验证

    首先vux中的表单验证在点击触发,失焦时才显示错误信息,如果不管它,它就没反应,这显然是不合理的:解决办法就是:在提交时做验证,不通过的话就使用.focus()及.blur()方法给它聚焦,失焦. i ...

  4. [转]jQuery.validate插件在失去焦点时执行验证代码

    转:http://my.oschina.net/enyo/blog/311566 关于 jquery.validate.js 表单验证插件如何在失去焦点时做验证.看手册后发现默认是在表单提交时执行验证 ...

  5. svn提交时强制添加注释 (转)

    SVN提交时,如果没有注释,在查阅历史时,会非常不方便.因此我们需要有一个让程序员提交代码时,强制添加注释的规则.下面看看在SVN中怎么实现. 1. 推荐使用VisualSVN作为服务端(免费下载地址 ...

  6. 帝国cms添加修改会员字段时字段名不能带数字,否则注册页会出现空白

    这几天ytkah在整帝国cms会员模块,根据客户需求添加不同的字段,这个相对不难,可还是遇到了点问题.当时添加会员字段时,在字段名用数字“1”来代表第一次,如下图的字段名“1rwsdy” 但是添加以后 ...

  7. TClientDataSet 提交时提示 Field value Required 但是未提示具体哪个字段。

    TClientDataSet 提交时提示 Field value Required 但是未提示具体哪个字段. 这个错误特别麻烦,要使用 midas 控件时,虽然很方便.但是出错了根本找不到原因,特别是 ...

  8. Struts(二十四):短路验证&重写实现转换验证失败时短路&非字段验证

    短路验证: 若对一个字段使用多个验证器,默认情况下会执行所有的验证.若希望前面的验证器没有通过,后面的验证器就不再执行,可以使用短路验证. 1.如下拦截器,如果输入字符串,提交表单后,默认是会出现三个 ...

  9. 如何实现织梦dedecms表单提交时发送邮箱功能【已解决】

    我们通过织梦系统制作网站时,很多客户需要有在线留言功能,这时就会用到自定义表单.但是很多用户觉得经常登陆后台查看留言信息太麻烦了,于是想能否在提交留言是直接把内容发送到指定邮箱.网站经过测试终于实现了 ...

随机推荐

  1. zabbix使用(自定义监控、自动报警)

    自定义监控(制作模板) zabbix自带模板Template OS Linux (Template App Zabbix Agent)提供CPU.内存.磁盘.网卡等常规监控,只要新加主机关联此模板,就 ...

  2. IntelliJ使用指南—— 导入Eclipse的Web项目

    通常一个团队中可能有人用eclipse,有人用intelliJ,那么经常会出现需要导入别人用eclipse建好的web项目.而IntelliJ提供了多种项目类型的导入方式,其中就有eclipse. 在 ...

  3. Java - 关于泛型

    自Java 1.5开始使用的泛型,泛型给人比较直观的印象是..."尖括号里写了类型我就不用检查类型也不用强转了". 确实,那先从API的使用者的角度上想问题,泛型还有什么意义? D ...

  4. MAVEN的基本配置,以及Hello Word

    MAVEN介绍 Maven是一个项目构建工具,参与项目创建.jar包管理.编译.运行.打包和发布等过程. Maven工具目的是以一种简便方式在多个项目中共享jar包. MAVEN安装和配置 Maven ...

  5. [javaSE] 网络编程(URL)

    获取URL对象,new出来,构造参数:String的路径 调用URL对象的getProtocal()方法,获取协议 调用URL对象的getHost()方法,获取主机 调用URL对象的getPath() ...

  6. SpringBoot Mybatis的驼峰命名

    开启驼峰命名的方法 第一种方式: 可以在配置类中进行配置.配置的Demo如下: @Bean(name="sqlSessionFactory") public SqlSessionF ...

  7. 用Lua控制Nginx静态文件的url访问权限

    需求背景:比如我们有一个存储文件的web服务器,一般通过url可直接访问到:http://127.0.0.1/uploads/test.rar,如果我们需要限制别人的访问,可以通过添加lua脚本来控制 ...

  8. 解决全站字符乱码(POST和GET中文编码问题)

    1 说明 乱码问题: 获取请求参数中的乱码问题: POST请求:request.setCharacterEncoding(“utf-8”): GET请求:new String(request.getP ...

  9. js-script标签放在的位置

    * 建议把script标签放到</body>后面 * 如果现在有这样一个需求 在js里面需要获取到input里面的值,如果把script标签放到head里面,会出现问题.HTML解析是从上 ...

  10. bootstrap框架怎么在html页面加载使用

    今天敲代码的时候,正好碰到这个问题. 与大家分享这个解决方法:     1/7 到bootstrap官方网站下载,对于我们开发者来说,直接下载编译和压缩后的CSS.JavaScript文件,另外还包含 ...