##// END OF EJS Templates
Merged r12131 and r12132 (#14798)....
Jean-Philippe Lang -
r11904:d259dd2dd5cc
parent child
Show More
@@ -1337,7 +1337,8 class Issue < ActiveRecord::Base
1337 if average == 0
1337 if average == 0
1338 average = 1
1338 average = 1
1339 end
1339 end
1340 done = p.leaves.sum("COALESCE(estimated_hours, #{average}) * (CASE WHEN is_closed = #{connection.quoted_true} THEN 100 ELSE COALESCE(done_ratio, 0) END)", :joins => :status).to_f
1340 done = p.leaves.sum("COALESCE(CASE WHEN estimated_hours > 0 THEN estimated_hours ELSE NULL END, #{average}) " +
1341 "* (CASE WHEN is_closed = #{connection.quoted_true} THEN 100 ELSE COALESCE(done_ratio, 0) END)", :joins => :status).to_f
1341 progress = done / (average * leaves_count)
1342 progress = done / (average * leaves_count)
1342 p.done_ratio = progress.round
1343 p.done_ratio = progress.round
1343 end
1344 end
@@ -302,6 +302,17 class IssueNestedSetTest < ActiveSupport::TestCase
302 assert_equal (50 * 20 + 20 * 10) / 30, parent.reload.done_ratio
302 assert_equal (50 * 20 + 20 * 10) / 30, parent.reload.done_ratio
303 end
303 end
304
304
305 def test_parent_done_ratio_with_child_estimate_to_0_should_reach_100
306 parent = Issue.generate!
307 issue1 = Issue.generate!(:parent_issue_id => parent.id)
308 issue2 = Issue.generate!(:parent_issue_id => parent.id, :estimated_hours => 0)
309 assert_equal 0, parent.reload.done_ratio
310 issue1.reload.update_attribute :status_id, 5
311 assert_equal 50, parent.reload.done_ratio
312 issue2.reload.update_attribute :status_id, 5
313 assert_equal 100, parent.reload.done_ratio
314 end
315
305 def test_parent_estimate_should_be_sum_of_leaves
316 def test_parent_estimate_should_be_sum_of_leaves
306 parent = Issue.generate!
317 parent = Issue.generate!
307 Issue.generate!(:estimated_hours => nil, :parent_issue_id => parent.id)
318 Issue.generate!(:estimated_hours => nil, :parent_issue_id => parent.id)
General Comments 0
You need to be logged in to leave comments. Login now