Redmineプラグイン(WorkTime) 作成覚書

cd $RAILS_ROOT

***プラグインの雛形生成***
# ruby script/generate redmine_plugin work_time

***バージョン管理に登録***
# cd vendor/plugins/redmine_work_time
# hg init
# hg commit -A

***init.rbの編集***
# vi init.rb

# cat init.rb
require 'redmine'

Redmine::Plugin.register :redmine_work_time do
  name 'Redmine Work Time plugin'
  author 'Tomohisa Kusukawa'
  description 'A plugin to view and update TimeEntry by each user'
  version '0.0.1'

  project_module :work_time do
    permission :view_work_time_tab, {:work_time => [:show]}, :public => true
  end

  menu :project_menu, :work_time, {:controller => 'work_time', :action => 'show'}, :caption => :work_time
end

*** モデル(DBテーブル)の作成 ***

# ruby script/generate redmine_plugin_model work_time user_issue_month uid:integer issue:integer month:string odr:integer
      exists  app/models/
      create  test/unit/
      create  test/fixtures/
      create  app/models/user_issue_month.rb
      create  test/unit/user_issue_month_test.rb
      create  test/fixtures/user_issue_months.yml
      exists  db/migrate
      create  db/migrate/20090104004624_create_user_issue_months.rb
# mv db/migrate/20090104004624_create_user_issue_months.rb db/migrate/001_create_user_issue_months.rb

# ruby script/generate redmine_plugin_model work_time wt_member_order user_id:integer position:integer
      exists  app/models/
      exists  test/unit/
      exists  test/fixtures/
      create  app/models/wt_member_order.rb
      create  test/unit/wt_member_order_test.rb
      create  test/fixtures/wt_member_orders.yml
      exists  db/migrate
      create  db/migrate/20090131105945_create_wt_member_orders.rb
# mv db/migrate/20090131105945_create_wt_member_orders.rb db/migrate/002_create_wt_member_orders.rb

# ruby script/generate redmine_plugin_model work_time wt_ticket_relay issue_id:integer position:integer parent:integer
      exists  app/models/
      exists  test/unit/
      exists  test/fixtures/
      create  app/models/wt_ticket_relay.rb
      create  test/unit/wt_ticket_relay_test.rb
      create  test/fixtures/wt_ticket_relays.yml
      exists  db/migrate
      create  db/migrate/20090131110021_create_wt_ticket_relays.rb
# mv db/migrate/20090131110021_create_wt_ticket_relays.rb db/migrate/003_create_wt_ticket_relays.rb

# vi db/migrate/004_add_prj_to_mem_odr.rb

# ruby script/generate redmine_plugin_model work_time wt_daily_memo day:date user_id:integer created_on:timestamp updated_on:timestamp description:text
      exists  app/models/
      exists  test/unit/
      exists  test/fixtures/
      create  app/models/wt_daily_memo.rb
      create  test/unit/wt_daily_memo_test.rb
      create  test/fixtures/wt_daily_memos.yml
      exists  db/migrate
      create  db/migrate/20090221151021_create_wt_daily_memos.rb
# mv db/migrate/20090221151021_create_wt_daily_memos.rb db/migrate/005_create_wt_daily_memos.rb

# rake db:migrate_plugins RAILS_ENV=production

*** コントローラの作成 ***

# ruby script/generate redmine_plugin_controller work_time work_time show
      exists  app/controllers/
      exists  app/helpers/
      create  app/views/work_time
      create  test/functional/
      create  app/controllers/work_time_controller.rb
      create  test/functional/work_time_controller_test.rb
      create  app/helpers/work_time_helper.rb
      create  app/views/work_time/show.html.erb

# cd $RAILS_ROOT/vendor/plugins/redmine_work_time/app/controllers/
# vi work_time_controller.rb

*** ビューの編集 ***

# cd $RAILS_ROOT/vendor/plugins/redmine_work_time/app/view/work_time/
# vi show.html.erb

######################################################################### version 0.0.33
ユーザーの月毎表示におけるチケットトータル工数の表示を左側に変更

######################################################################### version 0.0.34
ユーザ毎の工数表示をプロジェクト毎にまとめて表示するように変更
# cd $RAILS_ROOT
# ruby script/generate redmine_plugin_model work_time wt_project_orders prj:integer uid:integer dsp_prj:integer dsp_pos:integer
      exists  app/models/
      exists  test/unit/
      exists  test/fixtures/
      create  app/models/wt_project_orders.rb
      create  test/unit/wt_project_orders_test.rb
      create  test/fixtures/wt_project_orders.yml
      exists  db/migrate
      create  db/migrate/20090531095136_create_wt_project_orders.rb
# cd vendor/plugins/redmine_work_time/db/migrate/
# mv 20090531095136_create_wt_project_orders.rb 006_create_wt_project_orders.rb
# cd $RAILS_ROOT
# rake db:migrate_plugins RAILS_ENV=production

