@rolled_up_trackers ||=
Tracker.
joins(:projects).
+ joins("JOIN #{EnabledModule.table_name} ON #{EnabledModule.table_name}.project_id = #{Project.table_name}.id AND #{EnabledModule.table_name}.name = 'issue_tracking'", ).
select("DISTINCT #{Tracker.table_name}.*").
where("#{Project.table_name}.lft >= ? AND #{Project.table_name}.rgt <= ? AND #{Project.table_name}.status <> #{STATUS_ARCHIVED}", lft, rgt).
sorted.
assert_equal [1,2], parent.rolled_up_trackers.collect(&:id)
end
+ test "#rolled_up_trackers should ignore projects with issue_tracking module disabled" do
+ parent = Project.generate!
+ parent.trackers = Tracker.find([1, 2])
+ child = Project.generate_with_parent!(parent)
+ child.trackers = Tracker.find([2, 3])
+
+ assert_equal [1, 2, 3], parent.rolled_up_trackers.collect(&:id).sort
+
+ assert child.disable_module!(:issue_tracking)
+ parent.reload
+ assert_equal [1, 2], parent.rolled_up_trackers.collect(&:id).sort
+ end
+
test "#rolled_up_versions should include the versions for the current project" do
project = Project.generate!
parent_version_1 = Version.generate!(:project => project)