From e48ff4882010df59f467433979fe27ebec39c0ee Mon Sep 17 00:00:00 2001 From: Go MAEDA Date: Sat, 17 Oct 2020 02:02:50 +0000 Subject: Evaluate acts_as_activity_provider's scope lazily (#33664). MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Patch by Pavel Rosický. git-svn-id: http://svn.redmine.org/redmine/trunk@20148 e93f8b46-1217-0410-a6f0-8f06a7374b81 --- .../acts_as_activity_provider/lib/acts_as_activity_provider.rb | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'lib/plugins') diff --git a/lib/plugins/acts_as_activity_provider/lib/acts_as_activity_provider.rb b/lib/plugins/acts_as_activity_provider/lib/acts_as_activity_provider.rb index 21e1ee473..5e98a0fee 100644 --- a/lib/plugins/acts_as_activity_provider/lib/acts_as_activity_provider.rb +++ b/lib/plugins/acts_as_activity_provider/lib/acts_as_activity_provider.rb @@ -55,7 +55,14 @@ module Redmine provider_options = activity_provider_options[event_type] raise "#{self.name} can not provide #{event_type} events." if provider_options.nil? - scope = (provider_options[:scope] || self) + scope = provider_options[:scope] + if !scope + scope = self + elsif scope.respond_to?(:call) + scope = scope.call + else + ActiveSupport::Deprecation.warn "acts_as_activity_provider with implicit :scope option is deprecated. Please pass a scope on the #{self.name} as a proc." + end if from && to scope = scope.where("#{provider_options[:timestamp]} BETWEEN ? AND ?", from, to) -- cgit v1.2.3