カスタムクエリページにコメントも出力する
Excelからの移行においてよく言われることの1つに、「Excelだと(ページを切り替えることなく)全部見ることができたのに」ってのがあるかと。まぁ、確かに「修正依頼の内容」と「修正(対応)内容」をスクロールだけで表示することができますからねぇ。ついでに、印刷する時にそのシートのみの印刷で事足りますから。
Tracの場合、基本的に1ページにつき1つのTicketなので、対応内容も含めて印刷を行う場合(そもそも、印刷することの是非に関してはここでは触れないこととします)はかなり面倒なことに。カスタムクエリのページで、「修正依頼」の内容に関してなら出力可能ですが、それでも修正(対応)内容を出力したい場合は不充分。
ということで、カスタムクエリのページ(およびTicketQueryMacro)において、対応内容(コメント)も出力することができるような改造を施してみました。本来はプラグインで完結させたかったのですが、残念ながら僕の力では叶わず、あきらめてTrac本体に手を加えることとしました。
修正対象のファイルは、trac/ticket/query.pyとtrac/ticket/templates/query_results.htmlの2ファイル。ただし、これとは別に、外部スクリプト:要素の汎用折りたたみのページで公開していただいているfold.jsに対してカスタマイズしたものが必要となります(元ページとしてはhttp://sug.blog2.fc2.com/blog-entry-115.htmlとなります)。
■query.pyおよびquery_results.htmlのパッチ⇒ダウンロードはこちらから:querycomment-patch.txt (9.6K)
※カスタムクエリページでpreserve_newlinesを反応させるの内容も含まれております。なお、その他のカスタマイズも含まれているので行番号は参考程度にお考えください。
■カスタマイズ版fold.js⇒ダウンロードはこちらから: fold.js (4.7K)
※fold.jsのカスタマイズ内容としては、全ての項目を一括で展開する/折りたたむための処理を追加したものとなっております。なお、trac/htdocs/jsフォルダ内にコピーしてください。
上記内容が問題なく取り込まれると、カスタムクエリのページにおいて「検索結果の各行の下に表示する」の部分において「説明」の他に「AllComments」「LastComment」の2つが追加されます。「AllComments」は文字通り全てのコメントが、「LastComment」は最後1つのコメントのみが表示されることとなります。
AllCommentsなどの場合、ページの縦方向が非常に大きくなることが考えられるため、デフォルトでは「全て折りたたまれた状態」で表示されることとなります(LastCommentのみの場合でも折りたたまれた状態となります)。あわせて、「全て展開」「全て畳む」の2つボタンが追加されます(内容は文字通りとなります)。
#TicketQueryMacroを利用する場合は、rowsパラメータにcomments(全てのコメントを出力)あるいはlastcomment(最後のコメントのみ出力)を指定すればOKです。descriptionと組み合わせて出力することも可能。
「Subversion・Trac・etc.」カテゴリの記事
- Trac:文字列項目での範囲指定(2009.07.08)
- ZipPackageDownload修正版(2009.04.12)
- TeamFile(2009.03.07)
- ExcelReportExportPluginのエントリポイント(2009.03.01)
- カスタムクエリ画面で作成日を条件に抽出したい(2009.02.28)









![アスキー: UNIX MAGAZINE (ユニックス マガジン) 2008年 01月号 [雑誌]](http://ecx.images-amazon.com/images/I/11Z7w19zJ3L.jpg)













Comments