##// END OF EJS Templates
Fixes reverting an issue to a status with a done_ratio of 0%. #5170...
Eric Davis -
r4072:83e0be5d07de
parent child
Show More
@@ -263,7 +263,7 class Issue < ActiveRecord::Base
263 263 end
264 264
265 265 def done_ratio
266 if Issue.use_status_for_done_ratio? && status && status.default_done_ratio?
266 if Issue.use_status_for_done_ratio? && status && status.default_done_ratio
267 267 status.default_done_ratio
268 268 else
269 269 read_attribute(:done_ratio)
@@ -326,7 +326,7 class Issue < ActiveRecord::Base
326 326 # Set the done_ratio using the status if that setting is set. This will keep the done_ratios
327 327 # even if the user turns off the setting later
328 328 def update_done_ratio_from_issue_status
329 if Issue.use_status_for_done_ratio? && status && status.default_done_ratio?
329 if Issue.use_status_for_done_ratio? && status && status.default_done_ratio
330 330 self.done_ratio = status.default_done_ratio
331 331 end
332 332 end
@@ -714,7 +714,7 class Issue < ActiveRecord::Base
714 714 end
715 715
716 716 # done ratio = weighted average ratio of leaves
717 unless Issue.use_status_for_done_ratio? && p.status && p.status.default_done_ratio?
717 unless Issue.use_status_for_done_ratio? && p.status && p.status.default_done_ratio
718 718 leaves_count = p.leaves.count
719 719 if leaves_count > 0
720 720 average = p.leaves.average(:estimated_hours).to_f
@@ -38,6 +38,7 issues_002:
38 38 lft: 1
39 39 rgt: 2
40 40 lock_version: 3
41 done_ratio: 30
41 42 issues_003:
42 43 created_on: 2006-07-19 21:07:27 +02:00
43 44 project_id: 1
@@ -593,6 +593,9 class IssueTest < ActiveSupport::TestCase
593 593 @issue = Issue.find(1)
594 594 @issue_status = IssueStatus.find(1)
595 595 @issue_status.update_attribute(:default_done_ratio, 50)
596 @issue2 = Issue.find(2)
597 @issue_status2 = IssueStatus.find(2)
598 @issue_status2.update_attribute(:default_done_ratio, 0)
596 599 end
597 600
598 601 context "with Setting.issue_done_ratio using the issue_field" do
@@ -602,6 +605,7 class IssueTest < ActiveSupport::TestCase
602 605
603 606 should "read the issue's field" do
604 607 assert_equal 0, @issue.done_ratio
608 assert_equal 30, @issue2.done_ratio
605 609 end
606 610 end
607 611
@@ -612,6 +616,7 class IssueTest < ActiveSupport::TestCase
612 616
613 617 should "read the Issue Status's default done ratio" do
614 618 assert_equal 50, @issue.done_ratio
619 assert_equal 0, @issue2.done_ratio
615 620 end
616 621 end
617 622 end
@@ -621,6 +626,9 class IssueTest < ActiveSupport::TestCase
621 626 @issue = Issue.find(1)
622 627 @issue_status = IssueStatus.find(1)
623 628 @issue_status.update_attribute(:default_done_ratio, 50)
629 @issue2 = Issue.find(2)
630 @issue_status2 = IssueStatus.find(2)
631 @issue_status2.update_attribute(:default_done_ratio, 0)
624 632 end
625 633
626 634 context "with Setting.issue_done_ratio using the issue_field" do
@@ -630,8 +638,10 class IssueTest < ActiveSupport::TestCase
630 638
631 639 should "not change the issue" do
632 640 @issue.update_done_ratio_from_issue_status
641 @issue2.update_done_ratio_from_issue_status
633 642
634 assert_equal 0, @issue.done_ratio
643 assert_equal 0, @issue.read_attribute(:done_ratio)
644 assert_equal 30, @issue2.read_attribute(:done_ratio)
635 645 end
636 646 end
637 647
@@ -640,10 +650,12 class IssueTest < ActiveSupport::TestCase
640 650 Setting.issue_done_ratio = 'issue_status'
641 651 end
642 652
643 should "not change the issue's done ratio" do
653 should "change the issue's done ratio" do
644 654 @issue.update_done_ratio_from_issue_status
655 @issue2.update_done_ratio_from_issue_status
645 656
646 assert_equal 50, @issue.done_ratio
657 assert_equal 50, @issue.read_attribute(:done_ratio)
658 assert_equal 0, @issue2.read_attribute(:done_ratio)
647 659 end
648 660 end
649 661 end
General Comments 0
You need to be logged in to leave comments. Login now