diff --git a/app/models/issue.rb b/app/models/issue.rb index 5798fef9f..7b67e9f5e 100644 --- a/app/models/issue.rb +++ b/app/models/issue.rb @@ -1704,7 +1704,7 @@ class Issue < ActiveRecord::Base estimated * ratio }.sum progress = done / (average * children.count) - p.done_ratio = progress.round + p.done_ratio = progress.floor end end end diff --git a/test/unit/issue_subtasking_test.rb b/test/unit/issue_subtasking_test.rb index a50df024c..0bf4ccfbd 100644 --- a/test/unit/issue_subtasking_test.rb +++ b/test/unit/issue_subtasking_test.rb @@ -157,6 +157,17 @@ class IssueSubtaskingTest < ActiveSupport::TestCase end end + def test_parent_done_ratio_should_round_down_to_the_nearest_decimal + with_settings :parent_issue_done_ratio => 'derived' do + parent = Issue.generate! + parent.generate_child!(:done_ratio => 20) + parent.generate_child!(:done_ratio => 20) + parent.generate_child!(:done_ratio => 10) + # (20 + 20 + 10) / 3 = 16.666... + assert_equal 16, parent.reload.done_ratio + end + end + def test_parent_done_ratio_should_be_weighted_by_estimated_times_if_any with_settings :parent_issue_done_ratio => 'derived' do parent = Issue.generate!