summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJean-Philippe Lang <jp_lang@yahoo.fr>2011-07-02 11:05:27 +0000
committerJean-Philippe Lang <jp_lang@yahoo.fr>2011-07-02 11:05:27 +0000
commitd0d807caf1efafb7486dbf34c7de55e9bf8378bd (patch)
tree0230cfae566f7727acdfeeb5a312712a3be80313
parentebdd9c6326d73df208e77c44e4a9d7871c86f71d (diff)
downloadredmine-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.rb5
-rw-r--r--test/unit/issue_test.rb16
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)