torutkのブログ

ソフトウェア・エンジニアのブログ

Redmine Wiki Lists プラグインの使い方メモ

Redmineでは、プロジェクトの概要タブで、トラッカー別にチケットの未完了数/完了数/合計数とが表示可能です。

進捗管理をする場合、未完了についてはまだ作業に入れていない状態か、作業中かを知りたいので、未着手、着手中、完了の分類がほしくなります(いわゆるカンバンですね)。

また、ワークフローによっては、着手中についてもう少し細分したくなるかもしれません。バグならば、調査中/処置中/確認中などです。

この場合、標準ではちょっと実現できそうにないので、プラグインが必要になりまそうです。Redmine標準のステータスでは、新規が未着手に、進行中、フィードバック、解決が着手中に、却下、終了が完了に該当します。

まずはView Customize Pluginを検討してみました。が、そもそもデータベースを検索するような処理は書けそうにないのであきらめました。
自前でプラグインを書くしかないかと思っていろいろ参考にできそうなプラグインを探し回っていたところ、Wiki Listsプラグインで集計が取れることを見つけました。

http://www.r-labs.org/projects/wiki_lists/wiki/Wiki_Lists

これで、プロジェクトとトラッカーを指定し、ステータスを未着手、着手、完了に3分類して件数を出せばよさそうです。

Wiki Lists プラグインのインストール

Redmineプラグインディレクトリで、GitHubからクローンします。

~$ cd /var/lib/redmine/plugins
plugins$ git clone https://github.com/tkusukawa/redmine_wiki_lists.git

データベースのマイグレートは不要なので、Redmineを再起動するとプラグインが認識されます。

Wiki Listsでチケット数の集計表示

Wiki Listプラグインは、Wikiマクロを提供するものです。
次のように記載すると、指定プロジェクト(id=11)のバグトラッカー(id=1)のステータス新規(id=1)のチケット件数に置き換わります。

{{ref_issues(-f:project_id = 11, -f:tracker_id = 1, -f:status_id = 1, -c)}}

進捗管理の計数

Redmineのデフォルトのトラッカー「バグ」について、当該プロジェクトにおいて未着手/着手/完了の数をWikiページで表示します。

デフォルトのステータスと、未着手/着手/完了の分類を次のように対応付けます。

ステータス 分類
新規 未着手
進行中 着手
フィードバック 着手
解決 着手
却下 完了
終了 完了

IDの調べ方

Wiki Listsプラグインのマクロでは、条件指定にプロジェクトのID、トラッカーのID、ステータスのIDを数値指定します。そこで、Redmine上では言葉で表現される項目からIDの値を調べる必要が生じます。

Redmine.JPのブログ(「Redmineチケット★一括★」ツールの紹介記事)の中で、project_idやtracker_id等の調べ方について言及しています。
Excelからチケットを作成・更新できる「Redmineチケット★一括★」 | Redmine.JP Blog

また、RedmineのデータベースをSQLで検索できる環境があれば、次のように確認することもできます。(Linux上で、RedmineRDBMSMariaDBを使用している場合)

データベースへ接続しRedmineデータベースへ移動
~$ mysql -uredmine -p
Enter password: ********
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 10
Server version: 5.5.50-MariaDB MariaDB Server

Copyright (c) 2000, 2016, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> use redmine;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
MariaDB [redmine]> 
プロジェクトのIDと名前を表示させる
MariaDB [redmine]> SELECT id,name FROM projects;
+----+--------------------------------+
| id | name                           |
+----+--------------------------------+
|  1 | JavaFXの習得                   |
|  2 | Redmine実験                    |
|  3 | GeoTools使いこなし             |
|  4 | ソフトウェア技術研鑽           |
| 11 | Redmine Plugin検証             |
+----+--------------------------------+
トラッカーのIDと名前
MariaDB [redmine]> SELECT id,name FROM trackers;
+----+-----------------------+
| id | name                  |
+----+-----------------------+
|  1 | バグ                  |
|  2 | 機能                  |
|  3 | サポート              |
|  5 | 資産                  |
|  7 | 計算機                |
+----+-----------------------+
ステータスのID
MariaDB [redmine]> SELECT id,name FROM issue_statuses;
+----+-----------------------+
| id | name                  |
+----+-----------------------+
|  1 | 新規                  |
|  2 | 進行中                |
|  3 | 解決                  |
|  4 | フィードバック        |
|  5 | 終了                  |
|  6 | 却下                  |
+----+-----------------------+
バグチケットの未着手/着手/完了数の表示

WikiページにWiki Listsプラグインのマクロを使って進捗状況の計数を表示します。

|_. 未着手 |_. 着手 |_. 完了 |_. 合計 |
| {{ref_issues(-f:project_id = 11, -f:tracker_id = 1, -f:status_id = 1, -c)}}
| {{ref_issues(-f:project_id = 11, -f:tracker_id = 1, -f:status_id = 2|3|4, -c)}}
| {{ref_issues(-f:project_id = 11, -f:tracker_id = 1, -f:status_id = 5|6, -c)}}
| {{ref_issues(-f:project_id = 11, -f:tracker_id = 1, -c)}} |

後日追記

環境

Redmine 3.0.3および3.3.0で確認しました。

プロジェクトの指定に関して

Wikiページが属するプロジェクトを対象とする場合は、

{{ref_issues(-p, -f:tracker_id = 1, -c)}} 

とすることで、プロジェクト識別子をハードコードせずに済ますことができます。
また、-pでプロジェクト名を指定することができるので、IDを調べる手間が減ります。