]> source.dussan.org Git - redmine.git/commitdiff
Ignore archived subprojects in Project#rolled_up_trackers (#2550).
authorJean-Philippe Lang <jp_lang@yahoo.fr>
Sun, 25 Jan 2009 11:15:28 +0000 (11:15 +0000)
committerJean-Philippe Lang <jp_lang@yahoo.fr>
Sun, 25 Jan 2009 11:15:28 +0000 (11:15 +0000)
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@2311 e93f8b46-1217-0410-a6f0-8f06a7374b81

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

index 8e4bd78e1401ec2e806339853c86fe87137c221f..f40bcb6038100b8f06ea6e567eee61f01a57cbb0 100644 (file)
@@ -225,12 +225,12 @@ class Project < ActiveRecord::Base
     end
   end
   
-  # Returns an array of the trackers used by the project and its sub projects
+  # Returns an array of the trackers used by the project and its active sub projects
   def rolled_up_trackers
     @rolled_up_trackers ||=
       Tracker.find(:all, :include => :projects,
                          :select => "DISTINCT #{Tracker.table_name}.*",
-                         :conditions => ["#{Project.table_name}.lft >= ? AND #{Project.table_name}.rgt <= ?", lft, rgt],
+                         :conditions => ["#{Project.table_name}.lft >= ? AND #{Project.table_name}.rgt <= ? AND #{Project.table_name}.status = #{STATUS_ACTIVE}", lft, rgt],
                          :order => "#{Tracker.table_name}.position")
   end
   
index 6a143fae933394f79a8042f16571be364364ab45..94177f4335758512864fd0e86f469e3dc6578bbd 100644 (file)
@@ -198,6 +198,16 @@ class ProjectTest < Test::Unit::TestCase
     assert_equal [2, 3], child.rolled_up_trackers.collect(&:id)\r
   end\r
   \r
+  def test_rolled_up_trackers_should_ignore_archived_subprojects\r
+    parent = Project.find(1)\r
+    parent.trackers = Tracker.find([1,2])\r
+    child = parent.children.find(3)\r
+    child.trackers = Tracker.find([1,3])\r
+    parent.children.each(&:archive)\r
+    \r
+    assert_equal [1,2], parent.rolled_up_trackers.collect(&:id)\r
+  end\r
+  \r
   def test_next_identifier\r
     ProjectCustomField.delete_all\r
     Project.create!(:name => 'last', :identifier => 'p2008040')\r