diff options
author | Jean-Philippe Lang <jp_lang@yahoo.fr> | 2011-07-02 11:05:27 +0000 |
---|---|---|
committer | Jean-Philippe Lang <jp_lang@yahoo.fr> | 2011-07-02 11:05:27 +0000 |
commit | d0d807caf1efafb7486dbf34c7de55e9bf8378bd (patch) | |
tree | 0230cfae566f7727acdfeeb5a312712a3be80313 | |
parent | ebdd9c6326d73df208e77c44e4a9d7871c86f71d (diff) | |
download | redmine-d0d807caf1efafb7486dbf34c7de55e9bf8378bd.tar.gz redmine-d0d807caf1efafb7486dbf34c7de55e9bf8378bd.zip |
Do not journalize blank description changes (#8712).
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@6147 e93f8b46-1217-0410-a6f0-8f06a7374b81
-rw-r--r-- | app/models/issue.rb | 5 | ||||
-rw-r--r-- | test/unit/issue_test.rb | 16 |
2 files changed, 20 insertions, 1 deletions
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) |