]> source.dussan.org Git - redmine.git/commitdiff
Fixed that updated_on is not updated when updating an issue (#10964).
authorJean-Philippe Lang <jp_lang@yahoo.fr>
Mon, 21 May 2012 18:23:03 +0000 (18:23 +0000)
committerJean-Philippe Lang <jp_lang@yahoo.fr>
Mon, 21 May 2012 18:23:03 +0000 (18:23 +0000)
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9703 e93f8b46-1217-0410-a6f0-8f06a7374b81

app/models/issue.rb
test/unit/issue_test.rb

index cff39dc42640ac915fb63652b42781faee127297..118b8acf1caa831f3a639b3b44c7a4da67e91157 100644 (file)
@@ -75,7 +75,7 @@ class Issue < ActiveRecord::Base
                             :conditions => ["#{Project.table_name}.status=#{Project::STATUS_ACTIVE}"]
 
   before_create :default_assign
-  before_save :close_duplicates, :update_done_ratio_from_issue_status
+  before_save :close_duplicates, :update_done_ratio_from_issue_status, :force_updated_on_change
   after_save {|issue| issue.send :after_project_change if !issue.id_changed? && issue.project_id_changed?} 
   after_save :reschedule_following_issues, :update_nested_set_attributes, :update_parent_attributes, :create_journal
   after_destroy :update_parent_attributes
@@ -432,8 +432,6 @@ class Issue < ActiveRecord::Base
       @custom_values_before_change = {}
       self.custom_field_values.each {|c| @custom_values_before_change.store c.custom_field_id, c.value }
     end
-    # Make sure updated_on is updated when adding a note.
-    updated_on_will_change!
     @current_journal
   end
 
@@ -994,6 +992,13 @@ class Issue < ActiveRecord::Base
     end
   end
 
+  # Make sure updated_on is updated when adding a note
+  def force_updated_on_change
+    if @current_journal
+      self.updated_on = current_time_from_proper_timezone
+    end
+  end
+
   # Saves the changes in a Journal
   # Called after_save
   def create_journal
index 729e7cc54839573883c8235de0e13f9db9f52198..1e228cd384aa3038f89a82216333cdbbdc214d75 100644 (file)
@@ -445,6 +445,19 @@ class IssueTest < ActiveSupport::TestCase
     issue.save!
   end
 
+  def test_adding_journal_should_update_timestamp
+    issue = Issue.find(1)
+    updated_on_was = issue.updated_on
+
+    issue.init_journal(User.first, "Adding notes")
+    assert_difference 'Journal.count' do
+      assert issue.save
+    end
+    issue.reload
+
+    assert_not_equal updated_on_was, issue.updated_on
+  end
+
   def test_should_close_duplicates
     # Create 3 issues
     project = Project.find(1)