]> source.dussan.org Git - redmine.git/commitdiff
Dup attributes instead of issue object.
authorJean-Philippe Lang <jp_lang@yahoo.fr>
Sat, 24 Dec 2011 09:51:26 +0000 (09:51 +0000)
committerJean-Philippe Lang <jp_lang@yahoo.fr>
Sat, 24 Dec 2011 09:51:26 +0000 (09:51 +0000)
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@8344 e93f8b46-1217-0410-a6f0-8f06a7374b81

app/models/issue.rb

index fcfacd1a5874a9a9bf9706614620532e07739ea5..8e62f135ede2c63163ec94384dfbea336ef0d02b 100644 (file)
@@ -397,8 +397,7 @@ class Issue < ActiveRecord::Base
 
   def init_journal(user, notes = "")
     @current_journal ||= Journal.new(:journalized => self, :user => user, :notes => notes)
-    @issue_before_change = self.clone
-    @issue_before_change.status = self.status
+    @attributes_before_change = attributes.dup
     @custom_values_before_change = {}
     self.custom_values.each {|c| @custom_values_before_change.store c.custom_field_id, c.value }
     # Make sure updated_on is updated when adding a note.
@@ -927,13 +926,13 @@ class Issue < ActiveRecord::Base
     if @current_journal
       # attributes changes
       (Issue.column_names - %w(id root_id lft rgt lock_version created_on updated_on)).each {|c|
-        before = @issue_before_change.send(c)
+        before = @attributes_before_change[c]
         after = send(c)
         next if before == after || (before.blank? && after.blank?)
         @current_journal.details << JournalDetail.new(:property => 'attr',
                                                       :prop_key => c,
-                                                      :old_value => @issue_before_change.send(c),
-                                                      :value => send(c))
+                                                      :old_value => before,
+                                                      :value => after)
       }
       # custom fields changes
       custom_values.each {|c|