@@ -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 = ? |
|
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 = ? |
|
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