プロジェクト

全般

プロフィール

操作

プラグイン Tips » 履歴 » リビジョン 3

« 前 | リビジョン 3/16 (差分) | 次 »
Toshiyuki Ando, 2009/06/28 10:37


プラグイン Tips

チュートリアルの域を超えそうなものはこちらに?

活動ページにプラグインの履歴を表示する

Hudson プラグインを例にとり、プラグインの履歴を表示する方法を紹介します。

準備するもの

  • 履歴の名前
  • 履歴を管理するクラス

Hudson の場合は、

  • 履歴の名前: hudson
  • 履歴を管理するクラス: HudsonBuild (ビルドを活動の履歴としたいので)

としました。

サイドバーに表示される履歴の名前に、自分のプラグインを追加する

1. init.rb で活動ページに参加することを宣言する

以下のコードを Redmine::Plugin.register の中に追加します。

  activity_provider :[履歴の名前], :class_name => '[履歴を管理するクラス]', :default => false

Hudson の場合は以下のようになります。
default => false は、サイドバーのチェックボックスの状態で、最初表示した時にはチェックされないことを意味します。

  activity_provider :hudson, :class_name => 'HudsonBuild', :default => false

2. 権限に view_[履歴の名前] を追加する

活動の履歴では権限をチェックします。
現在ログインしているユーザが履歴を閲覧してよいかどうかは、 view_[履歴の名前]権限が許されているかどうか に依存します。

Hudsonプラグインで言うと、履歴の種類が hudson なので、 view_hudson 権限が必要です。
init.rb に記述する権限に view_hudson がないと、権限なしとみなされてサイドバーに履歴の名前が表示されません。

  project_module :hudson do
    # パーミッション設定。
    permission :view_hudson, {:hudson => [:index, :history]}  # !!ここ大事!!
    permission :build_hudson, {:hudson => [:build]}, :require => :member
    permission :edit_hudson_settings, {:hudson_settings => [:edit, :joblist]}
  end

3. 言語ファイルに label_[イベントの種類]_plural というエントリを追加する

サイドバーに表示する用語は、 label_[イベントの種類]_plural に統一されています。
Hudsonだと label_hudson_plural ですね。
言語ファイルに登録しておかないと label_hudson_plural が表示されるという、格好悪いことになります。

履歴を表示する

1. 履歴を管理するクラスに、 acts_as_event, acts_as_activity_provider を追記する

  acts_as_event :title => Proc.new {|o| "#{l(:label_build)} #{o.job.name} #{o.number}: #{o.result}"},
                :description => "",
                :datetime => :finished_at
  acts_as_activity_provider :type => 'hudson',
                             :timestamp => "#{HudsonBuild.table_name}.finished_at",
                             :author_key => "#{HudsonBuild.table_name}.updated_by",
                             :find_options => {:include => {:job => :project}}

2. 履歴を管理するクラスに、 project, author のプロパティを用意する

履歴を表示する際に、 project, author のプロパティが必要となります。


Updated by Toshiyuki Ando , ほぼ15年前に更新
Access count: 64607 :since 2009-10-30

Toshiyuki Ando さんがほぼ15年前に更新 · 3件の履歴