]> source.dussan.org Git - redmine.git/commitdiff
Fixed that project overview page shows trackers from subprojects with disabled issue...
authorJean-Philippe Lang <jp_lang@yahoo.fr>
Sat, 9 Feb 2013 13:56:11 +0000 (13:56 +0000)
committerJean-Philippe Lang <jp_lang@yahoo.fr>
Sat, 9 Feb 2013 13:56:11 +0000 (13:56 +0000)
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@11336 e93f8b46-1217-0410-a6f0-8f06a7374b81

app/models/project.rb
test/unit/project_test.rb

index fdb47cfdd8a56b2c8b10c3a8a5ebc60b78953cac..56e466f81b33e646b07116ba29790a3fc9729a4c 100644 (file)
@@ -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.
index e9c6e212abf368b2c7e1954fe21b481372cc2480..b9aabebed7e3ea2873cf36a9dbbde0a32bbbe7de 100644 (file)
@@ -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)