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処理が重くなるかもしれないので程々にしておくべきかしら('ω`)