BTS.Trac (1.0.51.183) | 2009-07-08 20:03 |
ExcelRedmineAddIn (1.0.1) | 2009-06-15 23:07 |
ExcelTracAddIn (1.2.1) | 2009-06-15 23:09 |
OpenProj (1.4-ja-dev2) | 2009-08-14 09:02 |
ProjectTracAddIn (1.0.0) | 2009-03-14 14:30 |
TaskTrayTrac (2.0β1) | 2009-07-31 00:55 |
TicketImportTemplate (1.0) | 2009-02-03 22:55 |
TracPluginTemplateMaker (0.2) | 2009-10-11 22:59 |
VisualStudioTracAddIn (2.0 β1) | 2009-07-31 00:53 |
以下のようにWikiにマクロを記載することで、TracReportで定義されているレポートを表示します。 また、オプションを設定することで、レポートの表からグラフを生成することもできます。
[[ReportInclude(args1,args2,...)]]
args:
表からグラフの生成は、以下のルールに従って行われます。
例:
[[ReportInclude(1)]]
[[ReportInclude(9,graph:bars)]]
[[ReportInclude(14,graph:lines,table:hide)]]
[[ReportInclude(20,graph:bars,stack:true)]]
[[ReportInclude(14?PRIORITY=high)]]
[[ReportInclude(8?USER=$USER)]]
ReportIncludePluginを使用するには、TracReportを定義する必要があります。TracReportの内容次第で、様々なレポート、グラフを出力することができます。ここでは、役立ちそうなTracReportのSQL文を紹介します(変なSQLありましたら指摘してください)。
SELECT t.owner AS 担当者, count(*) AS "担当チケット件数(総計)" FROM ticket t WHERE t.status <> 'closed' GROUP BY t.owner ORDER BY "担当チケット件数(総計)" DESC
[[ReportInclude(15,graph:bars,table:hide)]]
SELECT open.owner AS 担当者, open.open_count AS "担当チケット件数(Open)", closed.closed_count AS "担当チケット件数(Closed)" FROM (SELECT owner, count(*) AS open_count FROM ticket WHERE status <> 'closed' GROUP BY owner) open, (SELECT owner, count(*) AS closed_count FROM ticket WHERE status = 'closed' GROUP BY owner) closed WHERE open.owner = closed.owner ORDER BY open.open_count DESC
[[ReportInclude(14,graph:bars,stack:true,table:hide)]]
SELECT a.Date AS 日付, sum(b.登録数) AS 累計登録数, sum(b.クローズ数) AS 累計クローズ数 FROM (SELECT tm AS Date, sum(delta1) AS 登録数, sum(delta2) AS クローズ数 FROM (SELECT id, date(time,'unixepoch') tm, 1 delta1, 0 delta2 FROM ticket UNION ALL SELECT t.id id, date(tc.time,'unixepoch') tm, 0 delta1, (CASE tc.newvalue WHEN 'closed' THEN 1 ELSE -1 END) delta2 FROM ticket t JOIN ticket_change tc ON t.id=tc.ticket AND tc.field='status' AND (tc.newvalue='closed' or tc.oldvalue='closed')) GROUP BY tm) a, (SELECT tm AS Date, sum(delta1) AS 登録数, sum(delta2) AS クローズ数 FROM (SELECT id, date(time,'unixepoch') tm, 1 delta1, 0 delta2 FROM ticket UNION ALL SELECT t.id id, date(tc.time,'unixepoch') tm, 0 delta1, (CASE tc.newvalue WHEN 'closed' THEN 1 ELSE -1 END) delta2 FROM ticket t JOIN ticket_change tc ON t.id=tc.ticket AND tc.field='status' AND (tc.newvalue='closed' or tc.oldvalue='closed')) GROUP BY tm) b WHERE strftime('%s',a.Date) >= strftime('%s',b.Date) GROUP BY a.Date
Trac0.12の場合は、次のようにする。
SELECT a.Date ,sum(b.登録数) AS 累計登録数, sum(b.クローズ数) AS 累計クローズ数 FROM (SELECT tm AS Date, sum(delta1) AS 登録数, sum(delta2) AS クローズ数 FROM (SELECT id, date(time*1e-6,'unixepoch') tm, 1 delta1, 0 delta2 FROM ticket UNION ALL SELECT t.id id, date(tc.time*1e-6,'unixepoch') tm, 0 delta1, (CASE tc.newvalue WHEN 'closed' THEN 1 ELSE -1 END) delta2 FROM ticket t JOIN ticket_change tc ON t.id=tc.ticket AND tc.field='status' AND (tc.newvalue='closed' or tc.oldvalue='closed')) GROUP BY tm) a, (SELECT tm AS Date, sum(delta1) AS 登録数, sum(delta2) AS クローズ数 FROM (SELECT id, date(time*1e-6,'unixepoch') tm, 1 delta1, 0 delta2 FROM ticket UNION ALL SELECT t.id id, date(tc.time*1e-6,'unixepoch') tm, 0 delta1, (CASE tc.newvalue WHEN 'closed' THEN 1 ELSE -1 END) delta2 FROM ticket t JOIN ticket_change tc ON t.id=tc.ticket AND tc.field='status' AND (tc.newvalue='closed' or tc.oldvalue='closed')) GROUP BY tm) b WHERE strftime('%s',a.Date) >= strftime('%s',b.Date) GROUP BY a.Date
[[ReportInclude(13,graph:lines,table:hide)]]
sf.jpのSVNリポジトリから取得できます。
チェックアウトしたフォルダにて、下記を実行してパッケージをインストールしてください。
> python setup.py bdist_egg
distフォルダが作成されます。その中にある*.eggファイルを、TracEnvのplugins ディレクトリにコピーしてください。
本ソフトウェアは使用者の責任において利用してください。 このプラグインによって発生した、いかなる障害・損害も作成者は一切責任を負わないものとします。