##// END OF EJS Templates
Ignore archived subprojects in Project#rolled_up_trackers (#2550)....
Jean-Philippe Lang -
r2309:90c742e4f193
parent child
Show More
@@ -225,12 +225,12 class Project < ActiveRecord::Base
225 end
225 end
226 end
226 end
227
227
228 # Returns an array of the trackers used by the project and its sub projects
228 # Returns an array of the trackers used by the project and its active sub projects
229 def rolled_up_trackers
229 def rolled_up_trackers
230 @rolled_up_trackers ||=
230 @rolled_up_trackers ||=
231 Tracker.find(:all, :include => :projects,
231 Tracker.find(:all, :include => :projects,
232 :select => "DISTINCT #{Tracker.table_name}.*",
232 :select => "DISTINCT #{Tracker.table_name}.*",
233 :conditions => ["#{Project.table_name}.lft >= ? AND #{Project.table_name}.rgt <= ?", lft, rgt],
233 :conditions => ["#{Project.table_name}.lft >= ? AND #{Project.table_name}.rgt <= ? AND #{Project.table_name}.status = #{STATUS_ACTIVE}", lft, rgt],
234 :order => "#{Tracker.table_name}.position")
234 :order => "#{Tracker.table_name}.position")
235 end
235 end
236
236
@@ -198,6 +198,16 class ProjectTest < Test::Unit::TestCase
198 assert_equal [2, 3], child.rolled_up_trackers.collect(&:id)
198 assert_equal [2, 3], child.rolled_up_trackers.collect(&:id)
199 end
199 end
200
200
201 def test_rolled_up_trackers_should_ignore_archived_subprojects
202 parent = Project.find(1)
203 parent.trackers = Tracker.find([1,2])
204 child = parent.children.find(3)
205 child.trackers = Tracker.find([1,3])
206 parent.children.each(&:archive)
207
208 assert_equal [1,2], parent.rolled_up_trackers.collect(&:id)
209 end
210
201 def test_next_identifier
211 def test_next_identifier
202 ProjectCustomField.delete_all
212 ProjectCustomField.delete_all
203 Project.create!(:name => 'last', :identifier => 'p2008040')
213 Project.create!(:name => 'last', :identifier => 'p2008040')
General Comments 0
You need to be logged in to leave comments. Login now