##// END OF EJS Templates
Fixed calculation of done_ratio of parent task with child having estimated_time at 0 (#15870)....
Jean-Philippe Lang -
r12470:888823a449d9
parent child
Show More
@@ -1355,7 +1355,7 class Issue < ActiveRecord::Base
1355 unless Issue.use_status_for_done_ratio? && p.status && p.status.default_done_ratio
1355 unless Issue.use_status_for_done_ratio? && p.status && p.status.default_done_ratio
1356 leaves_count = p.leaves.count
1356 leaves_count = p.leaves.count
1357 if leaves_count > 0
1357 if leaves_count > 0
1358 average = p.leaves.average(:estimated_hours).to_f
1358 average = p.leaves.where("estimated_hours > 0").average(:estimated_hours).to_f
1359 if average == 0
1359 if average == 0
1360 average = 1
1360 average = 1
1361 end
1361 end
@@ -368,6 +368,18 class IssueNestedSetTest < ActiveSupport::TestCase
368 assert_equal 100, parent.reload.done_ratio
368 assert_equal 100, parent.reload.done_ratio
369 end
369 end
370
370
371 def test_done_ratio_of_parent_with_a_child_with_estimated_time_at_0_should_not_exceed_100
372 parent = Issue.generate!
373 Issue.generate!(:estimated_hours => 40, :parent_issue_id => parent.id)
374 Issue.generate!(:estimated_hours => 40, :parent_issue_id => parent.id)
375 Issue.generate!(:estimated_hours => 20, :parent_issue_id => parent.id)
376 Issue.generate!(:estimated_hours => 0, :parent_issue_id => parent.id)
377 parent.reload.children.each do |child|
378 child.update_attribute :status_id, 5
379 end
380 assert_equal 100, parent.reload.done_ratio
381 end
382
371 def test_move_parent_updates_old_parent_attributes
383 def test_move_parent_updates_old_parent_attributes
372 first_parent = Issue.generate!
384 first_parent = Issue.generate!
373 second_parent = Issue.generate!
385 second_parent = Issue.generate!
General Comments 0
You need to be logged in to leave comments. Login now