From 00df32e7b48751d294a466ca19c4be4d1b844715 Mon Sep 17 00:00:00 2001 From: Jens Kraemer Date: Thu, 18 Mar 2021 16:37:10 +0800 Subject: [PATCH] fix/issue_copy-do_not_journalize_attachments --- app/models/issue.rb | 2 +- test/unit/issue_test.rb | 17 +++++++++++++++++ 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/app/models/issue.rb b/app/models/issue.rb index fb82297b3..76737409c 100644 --- a/app/models/issue.rb +++ b/app/models/issue.rb @@ -1887,7 +1887,7 @@ class Issue < ActiveRecord::Base # Callback on file attachment def attachment_added(attachment) - if current_journal && !attachment.new_record? + if current_journal && !attachment.new_record? && !copy? current_journal.journalize_attachment(attachment, :added) end end diff --git a/test/unit/issue_test.rb b/test/unit/issue_test.rb index 1fe42a3d8..3c76d62c9 100644 --- a/test/unit/issue_test.rb +++ b/test/unit/issue_test.rb @@ -1511,6 +1511,23 @@ class IssueTest < ActiveSupport::TestCase assert_equal [3, nil], copy.children.map(&:assigned_to_id) end + def test_copy_should_not_add_attachments_to_journal + set_tmp_attachments_directory + issue = Issue.generate! + copy = Issue.new + copy.init_journal User.find(1) + copy.copy_from issue + + copy.project = issue.project + copy.save_attachments( + { 'p0' => {'file' => mock_file_with_options(:original_filename => 'upload')} } + ) + assert copy.save + assert j = copy.journals.last + assert_equal 1, j.details.size + assert_equal 'relation', j.details[0].property + end + def test_should_not_call_after_project_change_on_creation issue = Issue.new(:project_id => 1, :tracker_id => 1, :status_id => 1, :subject => 'Test', :author_id => 1) -- 2.20.1