]> source.dussan.org Git - redmine.git/commitdiff
Adds #activity_provider shortcut method to the plugin API.
authorJean-Philippe Lang <jp_lang@yahoo.fr>
Sun, 27 Jul 2008 18:38:31 +0000 (18:38 +0000)
committerJean-Philippe Lang <jp_lang@yahoo.fr>
Sun, 27 Jul 2008 18:38:31 +0000 (18:38 +0000)
git-svn-id: http://redmine.rubyforge.org/svn/trunk@1702 e93f8b46-1217-0410-a6f0-8f06a7374b81

lib/redmine/activity.rb
lib/redmine/plugin.rb

index 144ce95ed7b5708f91478f4ed1b813e6d5dffa8a..565a53f365bedf3924f0447a591dbf5954612f17 100644 (file)
@@ -30,14 +30,6 @@ module Redmine
       end
       
       # Registers an activity provider
-      # 
-      # Options:
-      # * :class_name - one or more model(s) that provide these events (inferred from event_type by default)
-      # * :default - setting this option to false will make the events not displayed by default
-      # 
-      # Examples:
-      #   register :issues
-      #   register :myevents, :class_name => 'Meeting'
       def register(event_type, options={})
         options.assert_valid_keys(:class_name, :default)
         
index 36632c13efc565543bf4b777c364f9cd60493960..cf6c194a268cc88ae6e8dc52df31cd95506e6ed9 100644 (file)
@@ -116,6 +116,32 @@ module Redmine #:nodoc:
       self.instance_eval(&block)
       @project_module = nil
     end
+    
+    # Registers an activity provider.
+    #
+    # Options:
+    # * <tt>:class_name</tt> - one or more model(s) that provide these events (inferred from event_type by default)
+    # * <tt>:default</tt> - setting this option to false will make the events not displayed by default
+    # 
+    # A model can provide several activity event types.
+    # 
+    # Examples:
+    #   register :news
+    #   register :scrums, :class_name => 'Meeting'
+    #   register :issues, :class_name => ['Issue', 'Journal']
+    # 
+    # Retrieving events:
+    # Associated model(s) must implement the find_events class method.
+    # ActiveRecord models can use acts_as_activity_provider as a way to implement this class method.
+    # 
+    # The following call should return all the scrum events visible by current user that occured in the 5 last days: 
+    #   Meeting.find_events('scrums', User.current, 5.days.ago, Date.today)
+    #   Meeting.find_events('scrums', User.current, 5.days.ago, Date.today, :project => foo) # events for project foo only
+    # 
+    # Note that :view_scrums permission is required to view these events in the activity view.
+    def activity_provider(*args)
+      Redmine::Activity.register(*args)
+    end
 
     # Returns +true+ if the plugin can be configured.
     def configurable?