trac にガントチャート/カレンダーのプラグイン (TracGanttCalendarPlugin) をインストールすることで、タスクの仕掛かり状況を俯瞰的に捉えることができます。
TracGanttCalendarPlugin のインストール
sourceforge.jp のプロジェクトページから、 tar ball をダウンロードするか、CVSリポジトリからソースコードをチェックアウトします。
プロジェクトページ:http://sourceforge.jp/projects/shibuya-trac/svn/view/plugins/ganttcalendarplugin/?root=shibuya-trac
ここでは wget で取得したところ、ファイル名に余計な引数がついてしまったので mv しています。インストールは setup.py が用意されていますので、お約束のインストールコマンドを実行するだけです。
httpdを再起動すると、プラグインが有効になりますので、管理画面よりチェックを入れて更新します。
これで、メニューに「カレンダー」と「ガントチャート」が表示されます。
$ wget http://sourceforge.jp/projects/shibuya-trac/svn/view/plugins/ganttcalendarplugin.tar.gz?root=shibuya-trac&view=tar
$ mv ganttcalendarplugin.tar.gz\?root\=shibuya-trac\&view\=tar ganttcalendarplugin.tar.gz
$ tar zxvf ganttcalendarplugin.tar.gz
$ cd ganttcalendarplugin/trunk/
$ python setup.py bdist_egg
# python setup.py install
カスタムフィールドの設定
TracGanttCalendarPlugin が使用するカスタムフィールドを設定します。README.ja に記載されているように、以下をtrac.iniに追記します。
これで、TracGanttCalendarPlugin が使用できるようになりました。
[ticket-custom]
due_assign = text
due_assign.label = 開始日
due_assign.order = 1
due_close= text
due_close.label = 終了日
due_close.order = 2
complete= text
complete.label = 進捗率(%)
complete.order = 3
非稼働日の設定
管理画面の「祝日設定」より、非稼働日を登録します。私の環境ではテーブル生成時に下記のエラーが発生しますが、その後は特に問題なく使用できています。
Oops…
Trac detected an internal error:
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe6 in position 0: ordinal not in range(128)
ガントチャートのソート順でお悩みの貴兄へ
運用を始めると、ガントチャート画面のソート順が変だ、という状況が発生することがあります。ソースコードを見ると、
と、ちゃんと order by で due_assign (=開始日) がはいってるのに、と。
$ lv TracGanttCalendarPlugin-0.2-py2.4.egg/ganttcalendar/ticketgantt.py
(snip)
sorted_field = req.args.get('sorted_field')
if sorted_field == None:
sorted_field = 'component'
(snip)
sql = ("SELECT id, type, summary, owner, t.description, status, a.value, c.value, cmp.value, milestone, component "
"FROM ticket t "
"JOIN ticket_custom a ON a.ticket = t.id AND a.name = 'due_assign' "
"JOIN ticket_custom c ON c.ticket = t.id AND c.name = 'due_close' "
"JOIN ticket_custom cmp ON cmp.ticket = t.id AND cmp.name = 'complete' "
"%sORDER by %s , a.value ") % (condition, sorted_field)
(snip)
そういうときは、due_assign のデータを見てみましょう。仮に開始日を 2009 年 10 月 8 日として、スタッフが思い思いの形式で入力して、2009/10/08 とか 2009-10-08 とか、どうかすると 2009/10/8 なんてのが混在しているのではないでしょうか(データ型が text なので、登録できてしまうのです)。
そんな貴兄へ、運用ルールを周知させるとともに TracDecoratorPlugin によるポップアップカレンダー入力の導入をお勧めします。
0 件のコメント:
コメントを投稿