##// END OF EJS Templates
Use open scope in version issues count methods....
Jean-Philippe Lang -
r8165:2a0257e8af82
parent child
Show More
@@ -63,7 +63,10 class Issue < ActiveRecord::Base
63 named_scope :visible, lambda {|*args| { :include => :project,
63 named_scope :visible, lambda {|*args| { :include => :project,
64 :conditions => Issue.visible_condition(args.shift || User.current, *args) } }
64 :conditions => Issue.visible_condition(args.shift || User.current, *args) } }
65
65
66 named_scope :open, :conditions => ["#{IssueStatus.table_name}.is_closed = ?", false], :include => :status
66 named_scope :open, lambda {|*args|
67 is_closed = args.size > 0 ? !args.first : false
68 {:conditions => ["#{IssueStatus.table_name}.is_closed = ?", is_closed], :include => :status}
69 }
67
70
68 named_scope :recently_updated, :order => "#{Issue.table_name}.updated_on DESC"
71 named_scope :recently_updated, :order => "#{Issue.table_name}.updated_on DESC"
69 named_scope :with_limit, lambda { |limit| { :limit => limit} }
72 named_scope :with_limit, lambda { |limit| { :limit => limit} }
@@ -124,12 +124,12 class Version < ActiveRecord::Base
124
124
125 # Returns the total amount of open issues for this version.
125 # Returns the total amount of open issues for this version.
126 def open_issues_count
126 def open_issues_count
127 @open_issues_count ||= Issue.count(:all, :conditions => ["fixed_version_id = ? AND is_closed = ?", self.id, false], :include => :status)
127 @open_issues_count ||= Issue.open.count(:all, :conditions => ["fixed_version_id = ?", self.id])
128 end
128 end
129
129
130 # Returns the total amount of closed issues for this version.
130 # Returns the total amount of closed issues for this version.
131 def closed_issues_count
131 def closed_issues_count
132 @closed_issues_count ||= Issue.count(:all, :conditions => ["fixed_version_id = ? AND is_closed = ?", self.id, true], :include => :status)
132 @closed_issues_count ||= Issue.open(false).count(:all, :conditions => ["fixed_version_id = ?", self.id])
133 end
133 end
134
134
135 def wiki_page
135 def wiki_page
@@ -219,6 +219,16 class IssueTest < ActiveSupport::TestCase
219 assert_equal 0, Issue.find(1).descendants.visible.all.size
219 assert_equal 0, Issue.find(1).descendants.visible.all.size
220 end
220 end
221
221
222 def test_open_scope
223 issues = Issue.open.all
224 assert_nil issues.detect(&:closed?)
225 end
226
227 def test_open_scope_with_arg
228 issues = Issue.open(false).all
229 assert_equal issues, issues.select(&:closed?)
230 end
231
222 def test_errors_full_messages_should_include_custom_fields_errors
232 def test_errors_full_messages_should_include_custom_fields_errors
223 field = IssueCustomField.find_by_name('Database')
233 field = IssueCustomField.find_by_name('Database')
224
234
General Comments 0
You need to be logged in to leave comments. Login now