diff --git a/app/models/issue.rb b/app/models/issue.rb index 383b41b..106b7e7 100644 --- a/app/models/issue.rb +++ b/app/models/issue.rb @@ -1364,7 +1364,6 @@ class Issue < ActiveRecord::Base "* (CASE WHEN is_closed = #{connection.quoted_true} THEN 100 ELSE COALESCE(done_ratio, 0) END)").to_f progress = done / (average * leaves_count) p.done_ratio = progress.round - p.done_ratio = 100 if p.done_ratio > 100 end end diff --git a/test/unit/issue_nested_set_test.rb b/test/unit/issue_nested_set_test.rb index 3649e97..f3bfddb 100644 --- a/test/unit/issue_nested_set_test.rb +++ b/test/unit/issue_nested_set_test.rb @@ -356,6 +356,19 @@ class IssueNestedSetTest < ActiveSupport::TestCase assert_equal 12, parent.reload.estimated_hours end + def test_done_ratio_of_parent_with_a_child_without_estimated_time_should_not_exceed_100 + parent = Issue.generate! + Issue.generate!(:estimated_hours => 40, :parent_issue_id => parent.id) + Issue.generate!(:estimated_hours => 40, :parent_issue_id => parent.id) + Issue.generate!(:estimated_hours => 20, :parent_issue_id => parent.id) + Issue.generate!(:parent_issue_id => parent.id) + parent.reload.children.each do |child| + child.update_attribute :status_id, 5 + puts parent.reload.done_ratio + end + assert_equal 100, parent.reload.done_ratio + end + def test_move_parent_updates_old_parent_attributes first_parent = Issue.generate! second_parent = Issue.generate!