From 81f62878861f611c0dfd8c8ef1d2bfd3fad3c656 Mon Sep 17 00:00:00 2001 From: Kevin Fischer Date: Fri, 13 Apr 2018 13:12:04 +0900 Subject: Add due date change to journal of following issue Add journal to issue when rescheduling Use update Unify hash style --- app/models/issue.rb | 1 + test/unit/issue_test.rb | 26 ++++++++++++++++++++++++++ 2 files changed, 27 insertions(+) diff --git a/app/models/issue.rb b/app/models/issue.rb index c84377dfb..1ee86f459 100644 --- a/app/models/issue.rb +++ b/app/models/issue.rb @@ -1308,6 +1308,7 @@ class Issue < ActiveRecord::Base # Issue can not be moved earlier than its soonest start date date = [soonest_start(true), date].compact.max end + init_journal(User.current) reschedule_on(date) begin save diff --git a/test/unit/issue_test.rb b/test/unit/issue_test.rb index 8297335ca..b96e53fb3 100644 --- a/test/unit/issue_test.rb +++ b/test/unit/issue_test.rb @@ -2089,6 +2089,32 @@ class IssueTest < ActiveSupport::TestCase assert_equal Date.parse('2012-09-21'), issue2.due_date end + def test_rescheduling_an_issue_to_a_different_due_date_should_add_journal_to_following_issue + with_settings :non_working_week_days => [] do + issue1 = Issue.generate!(:start_date => '2012-10-15', :due_date => '2012-10-17') + issue2 = Issue.generate!(:start_date => '2012-10-18', :due_date => '2012-10-20') + IssueRelation.create!(:issue_from => issue1, :issue_to => issue2, + :relation_type => IssueRelation::TYPE_PRECEDES) + + issue2_journal_size_before = issue2.reload.journals.size + + issue1.reload + issue1.update!(:due_date => '2012-10-23') + issue2.reload + + assert_equal issue2_journal_size_before + 1, issue2.journals.size + + start_date_detail = issue2.journals.last.details.find_by(:prop_key => 'start_date') + assert_equal '2012-10-18', start_date_detail.old_value + assert_equal '2012-10-24', start_date_detail.value + + due_date_detail = issue2.journals.last.details.find_by(:prop_key => 'due_date') + assert_equal '2012-10-20', due_date_detail.old_value + assert_equal '2012-10-26', due_date_detail.value + end + end + + def test_rescheduling_reschedule_following_issue_earlier_should_consider_other_preceding_issues issue1 = Issue.generate!(:start_date => '2012-10-15', :due_date => '2012-10-17') issue2 = Issue.generate!(:start_date => '2012-10-15', :due_date => '2012-10-17') -- 2.13.6 (Apple Git-96)