Redmineの添付ファイルカテゴリプラグインについて

この記事は、[Redmine Advent Calendar 2021](https://adventar.org/calendars/6283)の19日目の内容になります。

# はじめに

最近、仕事の方で取り組んでいた、添付ファイルカテゴリプラグイン([redmine_attachment_categories](https://github.com/gtt-project/redmine_attachment_categories))について、ご紹介します。

## 添付ファイルカテゴリプラグインとは

[Stephan Wenzel (GitHub:@HugoHasenbein)](https://github.com/HugoHasenbein) さんという、ドイツで特許関係のお仕事をされている方が作成したプラグインです。

* https://github.com/HugoHasenbein/redmine_attachment_categories

オリジナルの動作イメージは以下のような形で、添付ファイル毎にカテゴリを選択し、サムネイル画像の下に選択したカテゴリのラベルを表示するものになります。
![動作イメージ](https://github.com/HugoHasenbein/redmine_attachment_categories/raw/master/doc/Overview.gif)

今回は、上記のオリジナルをフォークし、API対応や日本語翻訳を行った以下のリポジトリで説明していきます。

* https://github.com/gtt-project/redmine_attachment_categories

# 環境構築

## 前提条件

* Redmine: 3.4 ~ 4.2
  * (注) Redmineのtrunkにはまだ対応できてません。

## インストール

インストールは、通常のRedmineプラグイン同様となりますが、プラグインのDBマイグレーション(`bundle exec rake redmine:plugins:migrate`)を行う必要があります。

## 設定

システム管理者権限でログインし、ツールバーの[管理]メニューを選択すると、[添付ファイルカテゴリ]というメニューが追加されていますので、それをクリックします。
![attachment-admin-menu.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/104365/75d2fc6e-9d0a-b9c4-84fa-b1b31513782b.png)

デフォルトで `Category A` 〜 `Category D` までが登録されていますが、用途に応じて適宜変更します。
![attachment-admin-setting.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/104365/da3c16a6-33d8-d110-d071-eedd05e51edc.png)
以下では、`Category C` と `Category D` を削除し、 `Category A` を `対応前`、`Category B` を `対応後` にリネームしています。
(削除後、自動リロードが効かない問題を確認しましたので、後ほど修正します...:sweat:
一旦ブラウザを手動でリロードしてください :bow:)
![attachment-category-edit.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/104365/48b6edf2-45ea-0597-d770-d623522f1496.png)
![attachment-admin-setting-edited.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/104365/c1257321-f4ac-0d45-65bd-ee5140d98a2b.png)

その他、[プラグイン]メニューから `Attachment Categories` 行の[設定]をクリックして、タグのスタイルを変更することも可能です。
![attachment-plugin-setting1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/104365/10e50015-e0c6-de1e-8a1a-edb68f7fb73b.png)
![attachment-plugin-setting2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/104365/2550ac5c-b683-743a-7d13-a8aec22e5c26.png)

タグスタイルは、デフォルトの[標準]スタイルが日本語だと少し見辛いので、[他のスタイル]の方を選択して、[適用]ボタンをクリックします。

# 添付ファイルへのカテゴリ付与

では実際に、添付ファイルにカテゴリを付与してみましょう。
新しいチケット作成時に[ファイル選択]からプレビュー可能な画像ファイルを選択すると、画像の下にドロップダウンリストが表示されます。クリックすると、先ほど設定した `対応前`/`対応後` のリストが表示されますので、 `対応前` を選択します。
![issues-new-category-changer.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/104365/1c167c20-67a2-0eda-b7bc-969f4a343146.png)
対応前を選択すると、画像の下に設定した色でカテゴリラベルが表示されます。
![issues-new-selected-before.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/104365/032b5926-2af5-db5c-9e93-f8d6465f5d79.png)
[作成]ボタンをクリックして、チケットの作成が完了すると、チケットのファイル欄に、設定したカテゴリが表示されます。
![issues-show-attachments.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/104365/766b08b0-8931-8b4b-b4f2-20477492c045.png)
追加した添付ファイルのカテゴリを変更する場合は、右端の鉛筆アイコンをクリックします。
添付ファイルの編集画面が表示され、プレビュー画像の下にラベルとドロップダウンリストが表示されますので、適宜変更して[保存]ボタンをクリックします。(変更しない場合は、[キャンセル]リンクをクリックします。)
![attachments-edit1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/104365/ab5e525c-f93a-eb09-ebd6-978d4fddd745.png)

後から画像を追加する場合は、チケットの編集から[ファイル選択]ボタンをクリックし、同様にドロップダウンリストから `対応後` などを選択します。
![issues-edit1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/104365/c264fd62-7fca-6dfe-d793-5b25c883ce4b.png)

[送信]ボタンをクリックして、チケットの更新が完了すると、チケットのファイル欄に対応前後のカテゴリが表示されます。
![issues-show-attachments2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/104365/0f87eea2-9762-82b2-22b2-26a82e460620.png)

# おわりに

以上、駆け足となりますが、添付ファイルカテゴリプラグインについてご紹介しました。

今回は、例として対応前・対応後のユースケースで設定しましたが、用途に応じて、色々な設定や使い方ができると思います。

是非、色々試してみてください。