Redmine未読ニュース通知プラグインを試してみた

Redmineのニュースを使って、手軽に周知事項を流せないかなぁと思ったのですが、既読管理ができないため、自分が未読の情報があるのか判断しずらいです。

そこで、既読管理ができるプラグインを探したところ、ちょうど良さそうなものが見つかりました。

インストール

手元の環境(Redmine 3.2)に入れてみましたが、そのままだと入りませんでした。

[root@localhost plugins]# git clone https://github.com/georz/redmine_news_notification.git
[root@localhost plugins]# rake redmine:plugins:migrate RAILS_ENV=production
(in /var/lib/redmine)
/var/lib/redmine/vendor/bundle/ruby/2.2.0/gems/htmlentities-4.3.1/lib/htmlentities/mappings/expanded.rb:465: warning: duplicated key at line 466 ignored: "inodot"
An error occurred while loading the routes definition of redmine_news_notification plugin (/var/lib/redmine/plugins/redmine_news_notification/config/routes.rb): You should not use the `match` method in your router without specifying an HTTP method.
If you want to expose your action to both GET and POST, add `via: [:get, :post]` option.
If you want to expose your action to GET, use `get` in the router:
  Instead of: match "controller#action"
  Do: get "controller#action".

routes.rb でエラーが起きました。
Rails4だとoptionなしのmatchが使えないようですので、明示的にgetを指定するように変えました。

[root@localhost redmine_news_notification]# git diff
diff --git a/config/routes.rb b/config/routes.rb
index efa9320..07ccb56 100644
--- a/config/routes.rb
+++ b/config/routes.rb
@@ -1,5 +1,5 @@
 # Plugin's routes
 # See: http://guides.rubyonrails.org/routing.html
 Rails.application.routes.draw do
-  match 'news_notifications/:action', :to => 'news_notifications'
+  get 'news_notifications/:action', :to => 'news_notifications'
 end

これで無事インストールができました。

動作

動作としてはシンプルで、未読のニュースがあった場合に、ヘッダ部分に表示されます。

f:id:onozaty:20160207012156p:plain

クリックすると、ニュースの概要が表示されます。

f:id:onozaty:20160207012245p:plain

とてもいい感じです。

なんでメール通知使わないの?

新規ニュースはRedmineのメール通知でも飛ばせます。ただ、Redmineを頻繁に見ながら作業している状況で、メールに通知されるのって、ちょっと遠回りをしている気がしてなりません。
また、メールはそれ以外の情報も大量に流れ込んできて、Redmineの通知が埋もれやすいので、なるべくRedmineの情報はRedmine上で通知が出来ればよいなぁと個人的には思っています。(今回のような仕組みはニュース以外にもあっても良いなぁと思っています)

ちなみにメール通知がベストなのかどうかは、通知が飛ぶ量だったり、メールでどんな情報が流れているのかといったところによっても変わってくるものですので、プロジェクトによって全然異なるかと思います。