##// END OF EJS Templates
remove trailing white-spaces from vendor/plugins/acts_as_activity_provider/lib/acts_as_activity_provider.rb...
Toshi MARUYAMA -
r9167:0e7a2dd688e0
parent child
Show More
@@ -1,16 +1,16
1 # redMine - project management software
1 # Redmine - project management software
2 # Copyright (C) 2006-2008 Jean-Philippe Lang
2 # Copyright (C) 2006-2012 Jean-Philippe Lang
3 #
3 #
4 # This program is free software; you can redistribute it and/or
4 # This program is free software; you can redistribute it and/or
5 # modify it under the terms of the GNU General Public License
5 # modify it under the terms of the GNU General Public License
6 # as published by the Free Software Foundation; either version 2
6 # as published by the Free Software Foundation; either version 2
7 # of the License, or (at your option) any later version.
7 # of the License, or (at your option) any later version.
8 #
8 #
9 # This program is distributed in the hope that it will be useful,
9 # This program is distributed in the hope that it will be useful,
10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 # GNU General Public License for more details.
12 # GNU General Public License for more details.
13 #
13 #
14 # You should have received a copy of the GNU General Public License
14 # You should have received a copy of the GNU General Public License
15 # along with this program; if not, write to the Free Software
15 # along with this program; if not, write to the Free Software
16 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
16 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
@@ -31,11 +31,11 module Redmine
31
31
32 options.assert_valid_keys(:type, :permission, :timestamp, :author_key, :find_options)
32 options.assert_valid_keys(:type, :permission, :timestamp, :author_key, :find_options)
33 self.activity_provider_options ||= {}
33 self.activity_provider_options ||= {}
34
34
35 # One model can provide different event types
35 # One model can provide different event types
36 # We store these options in activity_provider_options hash
36 # We store these options in activity_provider_options hash
37 event_type = options.delete(:type) || self.name.underscore.pluralize
37 event_type = options.delete(:type) || self.name.underscore.pluralize
38
38
39 options[:timestamp] ||= "#{table_name}.created_on"
39 options[:timestamp] ||= "#{table_name}.created_on"
40 options[:find_options] ||= {}
40 options[:find_options] ||= {}
41 options[:author_key] = "#{table_name}.#{options[:author_key]}" if options[:author_key].is_a?(Symbol)
41 options[:author_key] = "#{table_name}.#{options[:author_key]}" if options[:author_key].is_a?(Symbol)
@@ -47,29 +47,29 module Redmine
47 def self.included(base)
47 def self.included(base)
48 base.extend ClassMethods
48 base.extend ClassMethods
49 end
49 end
50
50
51 module ClassMethods
51 module ClassMethods
52 # Returns events of type event_type visible by user that occured between from and to
52 # Returns events of type event_type visible by user that occured between from and to
53 def find_events(event_type, user, from, to, options)
53 def find_events(event_type, user, from, to, options)
54 provider_options = activity_provider_options[event_type]
54 provider_options = activity_provider_options[event_type]
55 raise "#{self.name} can not provide #{event_type} events." if provider_options.nil?
55 raise "#{self.name} can not provide #{event_type} events." if provider_options.nil?
56
56
57 scope = self
57 scope = self
58
58
59 if from && to
59 if from && to
60 scope = scope.scoped(:conditions => ["#{provider_options[:timestamp]} BETWEEN ? AND ?", from, to])
60 scope = scope.scoped(:conditions => ["#{provider_options[:timestamp]} BETWEEN ? AND ?", from, to])
61 end
61 end
62
62
63 if options[:author]
63 if options[:author]
64 return [] if provider_options[:author_key].nil?
64 return [] if provider_options[:author_key].nil?
65 scope = scope.scoped(:conditions => ["#{provider_options[:author_key]} = ?", options[:author].id])
65 scope = scope.scoped(:conditions => ["#{provider_options[:author_key]} = ?", options[:author].id])
66 end
66 end
67
67
68 if options[:limit]
68 if options[:limit]
69 # id and creation time should be in same order in most cases
69 # id and creation time should be in same order in most cases
70 scope = scope.scoped(:order => "#{table_name}.id DESC", :limit => options[:limit])
70 scope = scope.scoped(:order => "#{table_name}.id DESC", :limit => options[:limit])
71 end
71 end
72
72
73 if provider_options.has_key?(:permission)
73 if provider_options.has_key?(:permission)
74 scope = scope.scoped(:conditions => Project.allowed_to_condition(user, provider_options[:permission] || :view_project, options))
74 scope = scope.scoped(:conditions => Project.allowed_to_condition(user, provider_options[:permission] || :view_project, options))
75 elsif respond_to?(:visible)
75 elsif respond_to?(:visible)
@@ -78,7 +78,7 module Redmine
78 ActiveSupport::Deprecation.warn "acts_as_activity_provider with implicit :permission option is deprecated. Add a visible scope to the #{self.name} model or use explicit :permission option."
78 ActiveSupport::Deprecation.warn "acts_as_activity_provider with implicit :permission option is deprecated. Add a visible scope to the #{self.name} model or use explicit :permission option."
79 scope = scope.scoped(:conditions => Project.allowed_to_condition(user, "view_#{self.name.underscore.pluralize}".to_sym, options))
79 scope = scope.scoped(:conditions => Project.allowed_to_condition(user, "view_#{self.name.underscore.pluralize}".to_sym, options))
80 end
80 end
81
81
82 scope.all(provider_options[:find_options].dup)
82 scope.all(provider_options[:find_options].dup)
83 end
83 end
84 end
84 end
General Comments 0
You need to be logged in to leave comments. Login now