From d0d807caf1efafb7486dbf34c7de55e9bf8378bd Mon Sep 17 00:00:00 2001 From: Jean-Philippe Lang Date: Sat, 2 Jul 2011 11:05:27 +0000 Subject: [PATCH] Do not journalize blank description changes (#8712). git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@6147 e93f8b46-1217-0410-a6f0-8f06a7374b81 --- app/models/issue.rb | 5 ++++- test/unit/issue_test.rb | 16 ++++++++++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/app/models/issue.rb b/app/models/issue.rb index ea18e03eb..5fe0d0517 100644 --- a/app/models/issue.rb +++ b/app/models/issue.rb @@ -870,10 +870,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) + 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)) unless send(c)==@issue_before_change.send(c) + :value => send(c)) } # custom fields changes custom_values.each {|c| diff --git a/test/unit/issue_test.rb b/test/unit/issue_test.rb index eee84ce26..92f604e52 100644 --- a/test/unit/issue_test.rb +++ b/test/unit/issue_test.rb @@ -733,6 +733,22 @@ class IssueTest < ActiveSupport::TestCase assert_equal old_description, detail.old_value assert_equal new_description, detail.value end + + def test_blank_descriptions_should_not_be_journalized + IssueCustomField.delete_all + Issue.update_all("description = NULL", "id=1") + + i = Issue.first + i.init_journal(User.find(2)) + i.subject = "blank description" + i.description = "\r\n" + + assert_difference 'Journal.count', 1 do + assert_difference 'JournalDetail.count', 1 do + i.save! + end + end + end def test_saving_twice_should_not_duplicate_journal_details i = Issue.find(:first) -- 2.39.5