@@ -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