Retrospectivaのチケットのメール通知をブロードキャストする

Retrospectivaでは、チケットのメール通知は初期状態だと、
発行者と、(選択されていれば)担当者の2名に飛ぶようになっている。
※厳密に言うと、チケット発行時に「Eメールでこのチケットの変更を通知する」のチェックを外せば、発行者には届かない。


Tracでは、常に送るメールアドレスを設定できるようだが、
その設定が見当たらない。(もしかしたらあるのかもしれない)


しょーがないので、付けてやった。
ただ、プロジェクト毎に設定ではなく、サイト毎に設定なので、
1つのサイトで複数プロジェクトを管理していて、このプロジェクトだけブロードキャストしたいというのは改良が必要。
そんなに難しい改良じゃないけど。


さて、私がやった対応は非常に簡単。
まず、管理画面のセットアップページにBroadcastの設定を追加。
これは、app/core_settings.ymlをいじればOK。
素晴らしい実装です。
↓を追加。 場所はどこもでOKなのだが、Encourage subscriptionの下あたりが適当かな。

- !ruby/object:RetroCM::BooleanSetting
name: 'broadcast'
caption: 'Broadcast'
description: |
プロジェクト参加者全員にメール通知を行います。
      この設定を有効にすると、Subscribe on assignement及びEncourage subscriptionの設定は無視されます。
default: false


これで、Broadcastのチェックボックスがセットアップに追加される。
あとは、チケット発行時に購読者を登録する処理を変更する。
購読者登録は、ticket_observer.rbの中、before_saveで行っている。
before_saveの先頭に↓を追加。

if RetroCM[:ticketing][:subscription][:broadcast]
 Project.current.
 users_with_permission(:create_and_work_on_tickets).
 each {|user| ticket.add_subscriber(user)}
 return
end

これで、完了。
バッチリ動きました。