From 0f2ee79f35ac109df4384c1826ff3b687f1421eb Mon Sep 17 00:00:00 2001 From: Jean-Philippe Lang Date: Sat, 9 Feb 2013 13:56:11 +0000 Subject: [PATCH] Fixed that project overview page shows trackers from subprojects with disabled issue module (#13076). git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@11336 e93f8b46-1217-0410-a6f0-8f06a7374b81 --- app/models/project.rb | 1 + test/unit/project_test.rb | 13 +++++++++++++ 2 files changed, 14 insertions(+) diff --git a/app/models/project.rb b/app/models/project.rb index fdb47cfdd..56e466f81 100644 --- a/app/models/project.rb +++ b/app/models/project.rb @@ -416,6 +416,7 @@ class Project < ActiveRecord::Base @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. diff --git a/test/unit/project_test.rb b/test/unit/project_test.rb index e9c6e212a..b9aabebed 100644 --- a/test/unit/project_test.rb +++ b/test/unit/project_test.rb @@ -434,6 +434,19 @@ class ProjectTest < ActiveSupport::TestCase 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) -- 2.39.5