QueryChartPluginとtrac-post-commit-hookを連携させてみる

関わってるプロジェクトで愛用させていただいているQueryChartPluginだが、
チケットの作業開始日と作業終了日の自動設定がチケットのステータスを直接変更する際にしか行われないのが微妙にストレスだったのでちょっと弄ってみた。
SVNコミットログでclose実行しておいて、
#後から終了日をチケット編集で追記とかションボリだったので

以下、既にQueryChartPluginの設定済みという前提で。

%TRACLIGHT_HOME%\python-lib\trac\contrib

Index: trac-post-commit-hook
===================================================================
--- trac-post-commit-hook	(リビジョン 2)
+++ trac-post-commit-hook	(作業コピー)
@@ -75,7 +75,7 @@
 import re
 import os
 import sys
-from datetime import datetime 
+from datetime import datetime,date
 from optparse import OptionParser
 
 parser = OptionParser()
@@ -195,9 +195,18 @@
     def _cmdClose(self, ticket):
         ticket['status'] = 'closed'
         ticket['resolution'] = 'fixed'
+        ticket['complete'] = '100'
+        today = date.today()
+        ticket['last_closed'] = today.strftime("%Y/%m/%d")
+        if ticket['last_assigned'] == "":
+            ticket['last_assigned'] = today.strftime("%Y/%m/%d")
 
     def _cmdRefs(self, ticket):
-        pass
+        if ticket['status'] == "new":
+            ticket['status'] = 'accepted'
+        if ticket['last_assigned'] == "":
+            today = date.today()
+            ticket['last_assigned'] = today.strftime("%Y/%m/%d")
 
 
 if __name__ == "__main__":

本日の日付を取得するのにdateを使っているけどもっといいやり方はありそう。
進捗率もついでに100%に。
おまけでrefsコマンドの場合の挙動もちょっと改変。だけどこっちはcloseと比べると色々なケースがありそうなのでちょっと悩ましい。もうちょい弄るか?
んーでもあんまりやり過ぎるとdb処理が重くなるかもしれないので程々にしておくべきかしら('ω`)