最近慣れてきたTrac。レポートがSQLで難しいなと思ったけれど、
例があるので挑戦。(なんか、無くなる方向らしいけれども)
コンポーネント別の出力が欲しかったのでちょっと作ってみた。
SELECT p.VALUE AS __color__, t.component AS __group__, id AS ticket, summary AS 概要, component AS コンポーネント, version AS バージョン, t.TYPE AS 分類, owner AS 担当者, status AS ステータス, TIME AS 登録日付, changetime AS _更新日付, description AS _説明, reporter AS _報告者 FROM ticket t LEFT JOIN enum p ON p.name = t.priority AND p.TYPE = 'priority' ORDER BY (t.component IS NULL),t.component, CAST(p.VALUE AS int), TIME |
これだと、優先度に応じて色が付けられるらしい。
優先度はあまり使っていなくて、closedなのかacceptedなのかnewなのかでパッと見てわかりたかったので
変えてみた。
SELECT p.VALUE AS __color__, t.component AS __group__, id AS ticket, summary AS 概要, component AS コンポーネント, version AS バージョン, t.TYPE AS 分類, owner AS 担当者, status AS ステータス, TIME AS 登録日付, changetime AS _更新日付, description AS _説明, reporter AS _報告者 FROM ticket t LEFT JOIN enum p ON p.name = t.status AND p.TYPE = 'status' ORDER BY (t.component IS NULL),t.component, CAST(p.VALUE AS int), TIME |
__color__ — 1 から 5 の数値である必要があります。値によって、あらかじめ定義された色付けが行われます。一般的な使用法は、優先度別の色付けです。
デフォルトの色付け: Color 1 Color 2 Color 3 Color 4 Color 5Note: ticket 表の優先度に対応する数値は、 enum 表を結合することで取り出しています。
っていう記述があったのでこれでいいのかなと思って、保存したけれど何も変わらず。
不思議に思ったので、テーブルを直接見ることに。
trac=# SELECT * FROM develop.enum ; TYPE | name | VALUE -------------+--------------+------- priority | blocker | 1 priority | critical | 2 priority | major | 3 priority | minor | 4 priority | trivial | 5 ticket_type | 拡張 | 2 ticket_type | 不具合対応 | 3 ticket_type | 一般タスク | 1 ticket_type | 思いつき | 4 ticket_type | コーディング | 5 ticket_type | テスト | 6 resolution | 解決済み | 1 resolution | 不可能 | 2 resolution | 解決求む | 3 resolution | 重複 | 4 resolution | 自己解決 | 5 ticket_type | 外観・名前 | 7 (17 rows) |
おっと、status に対応する数字がない。
trac=# SELECT DISTINCT status FROM ticket; status ---------- closed accepted NEW (3 rows) |
この3種類だけだと思われるので、下記のようにINSERT文を走らせてみた。
INSERT INTO develop.enum (TYPE,name,VALUE) VALUES('status','new',1); INSERT INTO develop.enum (TYPE,name,VALUE) VALUES('status','accepted',2); INSERT INTO develop.enum (TYPE,name,VALUE) VALUES('status','closed',3); INSERT INTO develop.enum (TYPE,name,VALUE) VALUES('status','reopened',4); |
するとOK!
偶数行目(2行目、4行目)では色が赤が肌色になったりしているので見やすくなった。
status もいろいろ増えると良いなと思ったり、mantisほどなくてもよいなと思ったり、思わなかったり。