##// END OF EJS Templates
Use a single query to retrieve issues_count, open_issues_count and closed_issues_count....
Jean-Philippe Lang -
r8936:1c0988cad384
parent child
Show More
@@ -123,17 +123,20 class Version < ActiveRecord::Base
123 123
124 124 # Returns assigned issues count
125 125 def issues_count
126 @issue_count ||= fixed_issues.count
126 load_issue_counts
127 @issue_count
127 128 end
128 129
129 130 # Returns the total amount of open issues for this version.
130 131 def open_issues_count
131 @open_issues_count ||= Issue.open.count(:all, :conditions => ["fixed_version_id = ?", self.id])
132 load_issue_counts
133 @open_issues_count
132 134 end
133 135
134 136 # Returns the total amount of closed issues for this version.
135 137 def closed_issues_count
136 @closed_issues_count ||= Issue.open(false).count(:all, :conditions => ["fixed_version_id = ?", self.id])
138 load_issue_counts
139 @closed_issues_count
137 140 end
138 141
139 142 def wiki_page
@@ -194,6 +197,21 class Version < ActiveRecord::Base
194 197
195 198 private
196 199
200 def load_issue_counts
201 unless @issue_count
202 @open_issues_count = 0
203 @closed_issues_count = 0
204 fixed_issues.count(:all, :group => :status).each do |status, count|
205 if status.is_closed?
206 @closed_issues_count += count
207 else
208 @open_issues_count += count
209 end
210 end
211 @issue_count = @open_issues_count + @closed_issues_count
212 end
213 end
214
197 215 # Update the issue's fixed versions. Used if a version's sharing changes.
198 216 def update_issues_from_sharing_change
199 217 if sharing_changed?
General Comments 0
You need to be logged in to leave comments. Login now