Merged r12131 and r12132 (#14798).
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/2.3-stable@12134 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
parent
ddc016d81d
commit
d259dd2dd5
|
@ -1337,7 +1337,8 @@ class Issue < ActiveRecord::Base
|
|||
if average == 0
|
||||
average = 1
|
||||
end
|
||||
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
|
||||
done = p.leaves.sum("COALESCE(CASE WHEN estimated_hours > 0 THEN estimated_hours ELSE NULL END, #{average}) " +
|
||||
"* (CASE WHEN is_closed = #{connection.quoted_true} THEN 100 ELSE COALESCE(done_ratio, 0) END)", :joins => :status).to_f
|
||||
progress = done / (average * leaves_count)
|
||||
p.done_ratio = progress.round
|
||||
end
|
||||
|
|
|
@ -302,6 +302,17 @@ class IssueNestedSetTest < ActiveSupport::TestCase
|
|||
assert_equal (50 * 20 + 20 * 10) / 30, parent.reload.done_ratio
|
||||
end
|
||||
|
||||
def test_parent_done_ratio_with_child_estimate_to_0_should_reach_100
|
||||
parent = Issue.generate!
|
||||
issue1 = Issue.generate!(:parent_issue_id => parent.id)
|
||||
issue2 = Issue.generate!(:parent_issue_id => parent.id, :estimated_hours => 0)
|
||||
assert_equal 0, parent.reload.done_ratio
|
||||
issue1.reload.update_attribute :status_id, 5
|
||||
assert_equal 50, parent.reload.done_ratio
|
||||
issue2.reload.update_attribute :status_id, 5
|
||||
assert_equal 100, parent.reload.done_ratio
|
||||
end
|
||||
|
||||
def test_parent_estimate_should_be_sum_of_leaves
|
||||
parent = Issue.generate!
|
||||
Issue.generate!(:estimated_hours => nil, :parent_issue_id => parent.id)
|
||||
|
|
Loading…
Reference in New Issue