diff --git a/extra/sample_plugin/app/models/meeting.rb b/extra/sample_plugin/app/models/meeting.rb new file mode 100644 index 0000000..89ecd52 --- /dev/null +++ b/extra/sample_plugin/app/models/meeting.rb @@ -0,0 +1,6 @@ +class Meeting < ActiveRecord::Base + belongs_to :project + + acts_as_activity_provider :timestamp => 'scheduled_on', + :find_options => { :include => :project } +end diff --git a/extra/sample_plugin/db/migrate/001_create_some_models.rb b/extra/sample_plugin/db/migrate/001_create_meetings.rb similarity index 61% rename from extra/sample_plugin/db/migrate/001_create_some_models.rb rename to extra/sample_plugin/db/migrate/001_create_meetings.rb index 39d58a6..fec9c8b 100644 --- a/extra/sample_plugin/db/migrate/001_create_some_models.rb +++ b/extra/sample_plugin/db/migrate/001_create_meetings.rb @@ -1,13 +1,15 @@ # Sample plugin migration # Use rake db:migrate_plugins to migrate installed plugins -class CreateSomeModels < ActiveRecord::Migration +class CreateMeetings < ActiveRecord::Migration def self.up - create_table :example_plugin_model, :force => true do |t| - t.column "example_attribute", :integer + create_table :meetings do |t| + t.column :project_id, :integer, :null => false + t.column :description, :string + t.column :scheduled_on, :datetime end end def self.down - drop_table :example_plugin_model + drop_table :meetings end end diff --git a/extra/sample_plugin/init.rb b/extra/sample_plugin/init.rb index 7389aaa..5c54333 100644 --- a/extra/sample_plugin/init.rb +++ b/extra/sample_plugin/init.rb @@ -18,8 +18,13 @@ Redmine::Plugin.register :sample_plugin do # This permission has to be explicitly given # It will be listed on the permissions screen permission :example_say_goodbye, {:example => [:say_goodbye]} + # This permission can be given to project members only + permission :view_meetings, {:meetings => [:index, :show]}, :require => :member end # A new item is added to the project menu menu :project_menu, :sample_plugin, { :controller => 'example', :action => 'say_hello' }, :caption => 'Sample' + + # Meetings are added to the activity view + activity_provider :meetings end diff --git a/extra/sample_plugin/lang/en.yml b/extra/sample_plugin/lang/en.yml index bf62bc3..c4005a7 100644 --- a/extra/sample_plugin/lang/en.yml +++ b/extra/sample_plugin/lang/en.yml @@ -1,4 +1,5 @@ # Sample plugin label_plugin_example: Sample Plugin +label_meeting_plural: Meetings text_say_hello: Plugin say 'Hello' text_say_goodbye: Plugin say 'Good bye' diff --git a/extra/sample_plugin/lang/fr.yml b/extra/sample_plugin/lang/fr.yml index 2c0829c..135050a 100644 --- a/extra/sample_plugin/lang/fr.yml +++ b/extra/sample_plugin/lang/fr.yml @@ -1,4 +1,5 @@ # Sample plugin label_plugin_example: Plugin exemple +label_meeting_plural: Meetings text_say_hello: Plugin dit 'Bonjour' text_say_goodbye: Plugin dit 'Au revoir'