Fixed that open scope on Project#issues raises an error (#11545).

Patch by Petr Pospisil.

git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@10199 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
Jean-Philippe Lang 2012-08-13 14:23:33 +00:00
parent 91c875437d
commit 8fb1a7e3cc
4 changed files with 9 additions and 2 deletions

View File

@ -64,7 +64,6 @@ class Issue < ActiveRecord::Base
lambda {|*args| { :include => :project, lambda {|*args| { :include => :project,
:conditions => Issue.visible_condition(args.shift || User.current, *args) } } :conditions => Issue.visible_condition(args.shift || User.current, *args) } }
class << self; undef :open; end
scope :open, lambda {|*args| scope :open, lambda {|*args|
is_closed = args.size > 0 ? !args.first : false is_closed = args.size > 0 ? !args.first : false
{:conditions => ["#{IssueStatus.table_name}.is_closed = ?", is_closed], :include => :status} {:conditions => ["#{IssueStatus.table_name}.is_closed = ?", is_closed], :include => :status}

View File

@ -35,7 +35,6 @@ class Version < ActiveRecord::Base
validates_inclusion_of :sharing, :in => VERSION_SHARINGS validates_inclusion_of :sharing, :in => VERSION_SHARINGS
scope :named, lambda {|arg| { :conditions => ["LOWER(#{table_name}.name) = LOWER(?)", arg.to_s.strip]}} scope :named, lambda {|arg| { :conditions => ["LOWER(#{table_name}.name) = LOWER(?)", arg.to_s.strip]}}
class << self; undef :open; end
scope :open, :conditions => {:status => 'open'} scope :open, :conditions => {:status => 'open'}
scope :visible, lambda {|*args| { :include => :project, scope :visible, lambda {|*args| { :include => :project,
:conditions => Project.allowed_to_condition(args.first || User.current, :view_issues) } } :conditions => Project.allowed_to_condition(args.first || User.current, :view_issues) } }

View File

@ -10,6 +10,11 @@ module ActiveRecord
l("field_#{name.underscore.gsub('/', '_')}_#{attr}", :default => ["field_#{attr}".to_sym, attr]) l("field_#{name.underscore.gsub('/', '_')}_#{attr}", :default => ["field_#{attr}".to_sym, attr])
end end
end end
# Undefines private Kernel#open method to allow using `open` scopes in models.
# See Defect #11545 (http://www.redmine.org/issues/11545) for details.
class Base ; undef open ; end
class Relation ; undef open ; end
end end
module ActionView module ActionView

View File

@ -132,6 +132,10 @@ class ProjectTest < ActiveSupport::TestCase
end end
end end
def test_open_scope_on_issues_association
assert_kind_of Issue, Project.find(1).issues.open.first
end
def test_archive def test_archive
user = @ecookbook.members.first.user user = @ecookbook.members.first.user
@ecookbook.archive @ecookbook.archive