Skip to content

Trac へガントチャート・プラグインを導入する

Gantt Calendar plugin for Trac を Trac に導入した際のメモを残しておきます。

インストール

Shibuya.tracGanttCalendarPlugin が公開されているので、こちらを利用します。まず、SourceForge の SVN サイトからソースコードを入手します。しかし、Checkout したソースコードで setup.py を実行するとエラーになってしまいます。

1
2
3
4
5
6
7
8
9
$ svn checkout http://svn.sourceforge.jp/svnroot/shibuya-trac/plugins/ganttcalendarplugin/trunk/
$ cd trunk
$ python setup.py bdist_egg
        ・
        ・
        ・
  File "/usr/lib/python2.4/site-packages/setuptools/command/sdist.py", line 98, in entries_finder
    log.warn("unrecognized .svn/entries format in %s", dirname)
NameError: global name 'log' is not defined

そこで(Checkout では無く)Export したソースコードを取得し、setup.py を実行します。

1
2
3
$ svn export http://svn.sourceforge.jp/svnroot/shibuya-trac/plugins/ganttcalendarplugin/trunk/
$ cd trunk
$ python setup.py bdist_egg

出来上がった egg ファイルをプロジェクトの plugins ディレクトリにコピーしておきます。

1
2
$ sudo cp dist/TracGanttCalendarPlugin-0.6.1-py2.4.egg /var/trac/project/plugins
$ sudo chown apache:apache TracGanttCalendarPlugin-0.6.1-py2.4.egg

また、.egg ファイルのキャッシュ用ディレクトリが生成無く、プラグインの実行時にエラーとなるようであれば、キャッシュ用ディレクトリを作成します。キャッシュ用のディレクトリ位置は設定ファイル上の記載に応じて異なりますが、私の場合は以下でした。

1
2
$ sudo mkdir /var/trac/.egg-cache
$ sudo chown apache:apache /var/trac/.egg-cache

設定ファイルの修正

プラグイン用に "/var/trac/project/conf/trac.ini" を修正します。具体的にはファイル末尾に以下を追記します。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
[ticket-custom]
complete = select
complete.label = % Complete
complete.options = 0|5|10|15|20|25|30|35|40|45|50|55|60|65|70|75|80|85|90|95|100
complete.order = 3
due_assign = text
due_assign.label = Start (YYYY/MM/DD)
due_assign.order = 1
due_close = text
due_close.label = End (YYYY/MM/DD)
due_close.order = 2

Trac ユーザへの権限付与

プラグイン設定にもやや関係しますが、Trac の管理者ユーザには "TRAC_ADMIN" 権限を付与しておくことで、Trac の Web サイト上から各種の設定を実施出来るようになります。まず、ユーザに "TRAC_ADMIN" 権限が付与されているか、確認します。下記では admin という名前のユーザに TRAC_ADMIN 権限が付与されているか、確認しています。

1
$ sudo trac-admin /home/trac/trac/ permission list admin

権限が無い場合は下記のコマンドで権限を付与します。

1
$ sudo trac-admin /home/trac/trac/ permission add admin TRAC_ADMIN