Redmine2.3.2にグループ管理プラグインを入れる
投稿日:
redmineにグループ管理のプラグインを入れたが、ちゃんと動かなかったので
つまづいた所をメモする。
※補足
Ruby on Railsを全然知らないPHPerがちょちょっと修正しているので、
Railsに詳しい人から見たらおかしいかも。指摘してくれるとありがたいです。
■環境
CentOS 6.5
Redmine 2.3.2
ruby 2.0.0
rails 3.2.13
https://github.com/fathomssen/redmine_group_manager
基本的なインストール方法はREADME.rdoc通り
①order by句がおかしい
オーダー句がおかしいとエラーになったので、app/models/gmanager.rbの9行目を修正した
【修正前】
mem = Member.where(:project_id => pid).order(user_id: :asc)
【修正後】
mem = Member.where(:project_id => pid).order("user_id asc")
②オーナー未指定のグループがあると動かない
まあ、インストール直後は全てのグループにオーナーが指定されていないのですが、
オーナーが未指定の場合はユーザテーブルのID=1のユーザがオーナーになるそうです。
(app/helpers/gmanagers_helper.rbの28行目参照)
私の環境ではID=1のユーザが既に削除されていたので、
新しくID=1で絶対的管理者的存在のユーザを作成しました。
別IDで絶対的管理者がいるなら、上記のヘルパーを修正するのでも良いと思います。
(個人のIDにしてしまうと退職した際などに困るのでオススメしません)
③グループ編集タグがredmine管理者にしかでない
各プロジェクトページにてグループ編集タブが表示されるはずなのですが、
プラグインを入れた時点ではredmineの管理者でなければタブが表示されていませんでした。
プロジェクトの管理者にグループ編集機能を使わせたい場合は、redmine管理者メニューの
『管理 > ロールと権限』からグループ編集権限を予め付与しておかなければなりません。
説明をよく読めば書いてあるのかもしれませんが、英語辛いので斜め読みしてました。すみません。
④グループメンバー一覧の項目順がおかしい
各プロジェクトのグループ編集タブよりグループメンバー一覧を表示すると、
カスタムフィールドの項目名と値の並び順が一致していませんでした。
なので、一致するようソート処理を入れます。
app/models/gmanager.rbの34行目と48行目に同じ修正を入れる。
【修正前】
keys = CustomField.where(:type => 'UserCustomField')
【修正後】
keys = CustomField.where(:type => 'UserCustomField').order(:id)
app/models/gmanager.rbの49行目も修正する。
【修正前】
values = User.find(id).custom_values
【修正後】
values = User.find(id).custom_values.order(:custom_field_id)
これで動くようになりました。
〜番外編〜
このプラグインはプロジェクトに所属している人をグループに追加することしかできません。
私はプロジェクトに所属していないユーザもグループ追加できるようにしたかったので、
プラグインを大幅に修正しました。
プロジェクトに未所属のメンバーもグループに追加できるようにしたプラグインは
こちらです。
https://github.com/mildjester/redmine_group_manager