Tracチケットのテンプレートを管理するTicketExtPlugin

Tracでは、要件やバグ、タスクなどといったチケットの分類を定義することができます。そのような分類を分ける場合、分類毎にチケットの内容を定義できると便利です。
例えば、Tracではカスタムフィールドを定義することが可能ですが、要件やバグの分類でそれぞれ利用するフィールドを変えたり、説明のフィールドに記述する内容を変えたりといったことです。


しかしながら、Tracではそのような指定ができません。
チケットの分類は指定できるのですが、チケットの内容は1パターンだけであり、利用しにくいところ。


そこで、Tracのプラグインを作成し、TracHacksに登録しました。


このプラグインでは、以下のことが可能です。

  • チケット分類に応じて、説明フィールドにテンプレートを適用
  • チケット分類に応じて、カスタムフィールドの有効/無効を設定
  • WebAdminから、テンプレート定義を指定可能


今後、チケットの拡張機能をいろいろ追加していこうと考えています。
今のところ考えているのは、以下のような機能です。

  • assign(担当者)、cc(関係者)といったユーザが関係する部分を、登録されているユーザから選択できるようにする。
    • 一度ログインしたなど、セッション情報が存在するユーザを選択できるプラグインはあるのですが、ログインの有無に関わらず、そのTracを利用できるユーザを選択できるようにしたい。
  • 上記の内容を、LDAPにも対応させる。
    • LDAPのユーザを選択できるプラグインがない。


でも、思っていたよりも、Tracプラグインの作成方法に関する情報少ないですね。
Tracプラグインを作るのもPythonを利用するのも、ほぼ初めてだったのですが、他のプラグインを参考にしながら、なんとか開発することができました。