Webコンサルタントの愚痴とアジャイル,生産性向上,Trac,オープンソースなどの与太話
社内でpukiwikiだのTracだの色々なwikiを使っているので、正直文法覚え切れない。
出来ればWYSIWYGでwiki表記覚えずにそれなりのページ作れたら良いよね~、ということでTracWysiwygPlugin。
■インストール
またプラグイン有効化のために以下を追加
以上が終わったらapache再起動
■出来ること
導入前後の画面を比べるとはっきり分かるが、Textareaの上部には、WYSIWYGにするかどうかのトグルが表示され、WYSIWYGを選択するとツールバーが表示されて、ごにょごにょ出来る。出来ることは以下の通り。
スクリーンショットはこんな感じ。ちょっとボタンは寂しいが、質実剛健。

■お勧め度
ちょっと挙動が怪しげな気がしなくも無いのだけど、入れて損することはまずない。お勧め。
ProjectMenuPluginは複数のプロジェクトがある場合、他のプロジェクトに簡単に移動できるように画面上にプルダウンで他のプロジェクトを表示するプラグイン。
複数案件を同時に実施している場合に便利だ。
■インストール
以上を実施したら、trac.iniにおいて
を追加して、apacheを再起動すれば良い。
■嵌りポイント
複数のTracをディレクトリを走査することで発見しているため、同一階層ディレクトリにTracプロジェクト以外のディレクトリが存在する場合は下記のようなエラーになる。
(下記のケースは同一階層にTracプロジェクトではないtmpディレクトリを作った場合)
ということで、既にパッチが提供されている。
(普通にIOErrorをトラップして無視すれば良いのだけど)
NavHiderPluginはTracのツールバーの項目を項目毎に非表示に出来るプラグイン。
■インストール。
いつも通り。
そしたら、trac.iniを編集して、
としてコンポーネントを有効にする。
※python2.3の場合はエラーになってうまくいかない。(Internal Server Error)
本家サイトのチケットにあるようにモジュールを修正する。
具体的には、filter.pyの7行目付近
について
に変えれば良い。
■メニューの表示・非表示の切り替え
のように、隠すタブをtrac.iniに記述するだけで良い。表示させたい場合は機能名の先頭に!もしくは-をつけると、非表示にはされない。
■用途
とりあえずタブは隠すだけで機能自体を殺すわけではないので、画面表示をすっきりさせたい場合には有効。
僕みたいにたくさんプラグインを入れて、メニューが2段になってしまうような変な人にも有効かな。
前回、goodMoodやbadMoodを選択しても、そいつが設定されず、全部標準になってしまうという問題にぶつかったが、これは結局ソースコードを追う限り、QUERY_STRINGが正しく取得できていないためであった。具体的には
120行目付近からある
のあたりで、リクエストパラメータにbadMood、okMood、goodMoodがあるかどうかを調べているのだが、リクエストの際に
のようにキー名のみになっていて、値が入っていない(=もない)ため、has_keyでキーが無いと判定されるのが原因っぽい。
なので、修正としては
のようにキーの存在を明示してあげるように、同梱のテンプレートを修正すれば良い。修正箇所は、ダウンロードしたソースのtemplates/nikoniko.csの27行目から29行目。それぞれ
の箇所を
に修正する。
前回の日付周りの修正とこのテンプレートの修正が終わったら、再度いつものようにインストール作業をして、プラグインを有効化する。
すると以下のような画面を表示することが出来る。

これをベースに更にアイコンを変えていくと良い。以下はNikoNikoPluginの画像を、NicoCaleMacroの画像に入れ替えたもの。こっちの方がよいかな。

trac-hacksにあるNikoNikoPluginを評価してみようと思って試してみたが、失敗。
失敗の原因
にて、strftimeがunicodeオブジェクトのメンバーじゃないよ~というエラーが出る。
これは以下のように直せばよい。
ということでまだちゃんと動作しない。
ちゃんと動作すれば、チーム全体の雰囲気や問題の把握速度があがって良いだろう。
ニコニコカレンダー単体用のオープンソースアプリケーションがありそうな気もするのだが、pukiwikiのプラグインしかない。自分で作ってみよう。
ExcelReportPluginは便利なのだが、若干問題があるので修正してみた。
問題点は以下の通りだ。
・複数プロジェクトに導入すると、その個数分だけ、出力のリンクが追加されてしまう。
(本家サイトでも報告済みでここに記載がある)
これに対応するためには、pluginsディレクトリ内に直接excel_report_plugin.pyを配置するのではなく、egg形式にして、共通ディレクトリに配置する。
手順は以下の通り。
1. trac-hacksからNew Plugin Generatorを入手して、適当な場所に解凍する。
2. 解凍した場所で以下のコマンドを実行する。
これによりexcel_report_plugin-pluginというディレクトリの中にsetup.pyや各種ディレクトリが出来上がる。
3. この中にexcel_report_pluginというディレクトリが出来上がるので、excel_report_plugin.pyを配置する。
4. ここまで出来たらいつものように
を実行する。これによりExcel_report_plugin-0.1-py2.4.eggがsite-packagesディレクトリにインストールされる。
5. 最後にプラグインを有効化する。
これでOK。
なお、setuptoolsでは依存性のチェックやなんかも出来るので覚えておいて損はなさそう。
今度は各チケットにどれくらいの時間がかかっているか管理したいので、Timing and Estimation Pluginを導入してみる。
■インストール
trac.iniには以下を追加
trac環境をアップグレード
(/path/to/tracは自身の環境に合わせる)
そして以上が終わったらapache再起動する。
■使い方
チケットをいじくるときに、想定所要時間(Estimated Hours)、所要時間(Add Hours to Ticket)、請求対象(Billable)かどうかを入れていく。
レポート画面では、それぞれの予実の差や合計値などが閲覧できる。
■個人的な感想
もうちょっと完成度が高いと良いかなぁ。
マニュアルにも記載があるのだが、インストールすると「チケットを見る」の中にレポートが数種類追加されるのだが、どれをクリックしても
といわれてしまい、しかもこれは仕様で「management」タブの中から見ろ、と書かれている。
こういうのはちょっと苦手。
ただ、実績の集計が出来るというのは従量課金で仕事をしているケースでは有効だと思われる。(カスタムフィールド使えば良いという話もある)
複数のTracプロジェクトをまとめてくれるTraM(Trac Multi)をインストールしてみた。
■インストール
■設定
□まとめる対象となる各プロジェクトに以下のように設定する。
※各所でtrac.ticket.report.* = disabledに設定しないと動作しないという記述があったが、むしろこちらを設定した方が動かないように見える
□まとめプロジェクトとSVNレポジトリを作成
ここでまとめ用のプロジェクトとSubversionのレポジトリを作成する。プロジェクトのディレクトリはallでないといけない。
□続いてapacheの設定を行う
httpd.confもしくはそれに準ずるファイルで下記を
以下の通り変更する
Trac全体としてはhttpd.confは以下のようになる。
この後apacheを再起動しておく。
■使用感
これ結構いいね。プロジェクトが多数あるような場合、状況を一覧して鳥瞰するのに効果的。ソースのレポジトリも追えるし、チケットも一覧できる。これならXMLRPCでゴリゴリしなくても何とかなるかもしれない。
StractisticsPluginはプロジェクトの状況をFlashを使って視覚的に表示するプラグイン。
インストール
設定
インストールが終了すると上部のタブにStractisticsが追加される。
クリックすると状況が表示される。
現在表示されるものは下記の3つである。
導入に際してのオプションは下記の通りである。
TracのExcelReportPluginをpython2.3で利用できないかと探っていたが、
とりあえず出来たので他にやりたい人のためにhackの記録を残しておく。
流れ
・pyExceleratorの代わりになるxlwtライブラリをインストール
・xlwtライブラリはpython2.3対応と謳っているが、python2.4で導入されたDecimal型を
使っているので関連モジュールを修正する
・ExcelReportPluginでExcel出力ライブラリをpyExceleratorからxlwtに変更する。
詳細
1.xlwtのインストール
2.xlwtの問題箇所修正
/usr/lib/python2.3/site-packages/xlwtに移動してRow.pyを修正
9行目の下記をコメントアウト
216行目
を以下の通り修正
3.ExcelReportPluginを修正
excel_report_plugin.pyを修正する
を
なお、上記作業の前に、reporter.pyにはパッチを適用しておくこと。
詳細は前のエントリを参照。
日記 PHP オープンソース Linux Trac Perl wordpress フリーソフト 自宅サーバ phpMyFaq Plugin Delphi 書評 apache eclipse Subversion Firefox セキュリティ アジャイル プラグイン mojavi Ruby Ajax/Web2.0 CakePHP Zope フレームワーク サーバ 文字化け scuttle OpenVZ 自宅 phpBB 仮想化 翻訳・日本語化 CMS ApacheDS LDAP 生産性向上 hacks CodeIgniter Agile・生産性向上 レビュー XAMPP Excel SBM 言語ファイル 修正 Ajax taskfreak mod_security ダウンロード HTML::FillInForm 情報共有 格安 レンタル アンケート API PhpScheduleIt 翻訳