我们在项目管理中使用了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. Knockout.js Text绑定

    <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8&quo ...

  2. [javaSE] 数据结构(二叉树-遍历与查找)

    前序遍历:中,左,右 中序遍历:左,中,右 后序遍历:左,右,中 二叉树查找 从根节点进行比较,目标比根节点小,指针移动到左边 从根节点进行比较,目标比根节点大,指针移动到右边 /** * 前序遍历 ...

  3. 多线程-定时器Timer

    2019-04-1218:03:32 package 多线程.定时器Timer_重要; import java.util.Timer; import java.util.TimerTask; publ ...

  4. 微服务系列(二):使用 API 网关构建微服务

    编者的话|本文来自 Nginx 官方博客,是微服务系列文章的第二篇,本文将探讨:微服务架构是如何影响客户端到服务端的通信,并提出一种使用 API 网关的方法. 作者介绍:Chris Richardso ...

  5. maven私服的搭建

    前言: 为什么要有maven私服? 当我们在公司开发时,如果每个程序员都需要连接外网去下载maven的jar包,当同时开发时,就会造成网络资源浪费,因此,maven提出了私服的概念,当公司内部程序员进 ...

  6. xshell ssh连接linux时提示ssh服务器拒绝了密码

    用Xshell root连接时显示ssh服务器拒绝了密码,应该是应该是sshd的设置不允许root用户用密码远程登录 修改 /etc/ssh/sshd_config文件,注意,安装了openssh才会 ...

  7. Vijos / 题库 / 输油管道问题

    背景 想念car的GF,car就出了道水题! 描述 某石油公司计划建造一条由东向西的主输油管道.该管道要穿过一个有n 口油井的油田.从每口油井都要有一条输油管道沿最短路经(或南或北)与主管道相连.如果 ...

  8. react context toggleButton demo

    //toggleButton demo: //code: //1.Appb.js: import React from 'react'; import {ThemeContext, themes} f ...

  9. PHP 如何向关联数组指定的 Key 之前插入元素

    PHP 关联数组可以通过三种方式插入新元素: $array[$insert_key] = $insert_value; $array = array_merge($array, $insert_arr ...

  10. 须知的css——margin不重叠的情形

    margin重叠 摘自css2.1规范中文版 CSS中,两个或者多个盒(可能但不一定是兄弟)的相邻的margin会被结合成一个margin.Margin按这种方式结合叫重叠(collapse),产生的 ...