給trac的ticket添加提交時字段驗證

咱們在項目管理中使用了trac系統,而且對於ticket添加了如下自定義字段而且對它們的格式都有必定要求:python

  • svn版本號:格式爲 r1234。多個版本號之間使用半角逗號隔開。如:r1234,r5678
  • 完成日期:yyyy-mm-dd的格式
  • 開發週期:表示開發功能所耗費的時間,格式爲數字或者一位小數後面跟上單位h或者d。
  • 測試版本號:v開頭的標準版本號,如:v2.3.1.5098

可是在實際操做中,不少開發人員不去閱讀規範文檔或者壓根記不起來格式規範,隨意填寫,非常苦惱。正則表達式

今天就先試圖給完成日期添加一個日期插件讓開發人員直接使用日期對話框來選擇日期,同時發現它已經自帶了格式驗證,而後在尋找這個插件的同時發現了一個好用的格式驗證插件https://trac-hacks.org/wiki/TracTicketValidatorPlugin服務器

   如何安裝此插件就不在這裏描述,直奔主題看看如何實現配置trac使插件生效。svn

  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:測試

點擊「提交變動」後顯示錯誤警告,以及在頁面頂部顯示出配置的錯誤提示。spa

相關文章
相關標籤/搜索