kaakaa Blog

この世は極楽 空にはとんぼ

Redmine 2.1.0 & Kanbanプラグイン 導入

今までTrac使ってたけど、Redmineも使ってみたくなったので家のCentOS6.3機に入れてみる。


とりあえずインストールはここを参考にしながら。
Redmine 2.1をCentOS 6.3にインストールする手順 | Redmine.JP Blog

特に問題なく済んだ。


Tracで使ってるKanban(http://mackeblog.blogspot.jp/2011/01/trac-and-kanban.html Macke's Blog: Trac and Kanban)みたいなの無いかなってことで、redmine_kanbanを入れてみる。
edavis10/redmine_kanban

が、2.x.x系には対応してないってことでエラー。
修正方法はここを参考にしながら。
http://www.redmine.org/boards/3/topics/30930 Plugins for redmine 2.0.1 - Error no such file to load -- dispatcher - Redmine


まず、db:migrateする時にdispathcerが無いよってエラー。

rake aborted!
no such file to load -- dispatcher

Tasks: TOP => redmine:plugins:migrate => environment
(See full trace by running task with --trace)

これは、参考ページにある通りinit.rbをdispatcherを使わない形に書き換える。

require 'dispatcher'

Dispatcher.to_prepare do 
  <init code>
end
ActionDispatch::Callbacks.to_prepare do 
  <init code>
end


んで、db:migrateしようとすると、今度はメソッド無いよエラー。

rake aborted!
undefined method `named_scope' for #

Tasks: TOP => db:migrate_plugins => redmine:plugins:migrate => environment
(See full trace by running task with --trace)

これも参考ページに書いてあるように、named_scope -> scopeに書き換える。

named_scopeは
redmine_kanban/lib/redmine_kanban/issue_patch.rb
redmine_kanban/lib/redmine_kanban/patches/principal_patch.rb
redmine_kanban/app/models/kanban_issue.rb
の3ファイルで使われているらしい。


直してdb:migrate。
次はこんなエラー。

An error occurred while loading the routes definition of redmine_kanban plugin (/var/lib/redmine/plugins/redmine_kanban/config/routes.rb): uninitialized constant ActionDispatch::Routing::Routes.

今度はココらへん参考にroute.rbを修正。
Uninitialized constant ActionDispatch::Routing::Routes. · Issue #9 · daipresents/redmine_roadmaps

nilチェック入れないとエラーになったりしたので、最終的にこうなりました。

RedmineApp::Application.routes.draw do
  resource :kanban, :member => {:sync => :put} do |kanban|
    if !kanban.nil? then
      kanban.resource :user_kanbans, :as => 'my-requests'
      kanban.resources :user_kanbans, :as => 'users'
      kanban.resources :assigned_kanbans, :as => 'assigned-to'
      kanban.resource :assigned_kanbans, :as => 'my-assigned', :only => [:show]
      kanban.resource :kanban_overviews, :as => 'overview', :only => [:show]
    end
  end
  resources :kanban_issues
end


んで、db:migrate

Migrating redmine_kanban (Kanban)...
==  CreateKanbanIssues: migrating =============================================
    • create_table(:kanban_issues)
-> 0.4196s
    • add_index(:kanban_issues, :user_id)
-> 0.2888s
    • add_index(:kanban_issues, :issue_id)
-> 0.2567s
    • add_index(:kanban_issues, :state)
-> 0.2424s == CreateKanbanIssues: migrated (1.2087s) ==================================== Note: The rake task db:migrate_plugins has been deprecated, please use the replacement version redmine:plugins:migrate

警告は出てるけど、いけたっぽい。


んで、httpd再起動してredmineを開くと…エラーで開けなくなってましたとさ。

routets.rbが悪そうだけど、どう直せば良いのかわからない…。

ActionController::RoutingError (No route matches {:controller=>"assigned_kanbans", :action=>"show", :id=>nil}):
  lib/redmine/menu_manager.rb:150:in `render_single_menu_node'
  lib/redmine/menu_manager.rb:102:in `render_menu_node'
  lib/redmine/menu_manager.rb:91:in `block in render_menu'
  lib/redmine/menu_manager.rb:168:in `block in menu_items_for'
  lib/redmine/menu_manager.rb:165:in `each'
  lib/redmine/menu_manager.rb:165:in `menu_items_for'
  lib/redmine/menu_manager.rb:90:in `render_menu'
  app/views/layouts/base.html.erb:24:in `_app_views_layouts_base_html_erb__576748956_98438230'
  app/controllers/wiki_controller.rb:92:in `show'

この調査でこんな時間…いかんわ。


追記。

Redmine2系からRails3になったらしく、Rails2と3だとroutes.rbの仕様がかなり変わったらしい。
色々試したけど、直せる気がしないので放置。