]> source.dussan.org Git - redmine.git/commitdiff
Merged r20872 from trunk to 4.1-stable (#34921).
authorGo MAEDA <maeda@farend.jp>
Mon, 29 Mar 2021 05:52:37 +0000 (05:52 +0000)
committerGo MAEDA <maeda@farend.jp>
Mon, 29 Mar 2021 05:52:37 +0000 (05:52 +0000)
git-svn-id: http://svn.redmine.org/redmine/branches/4.1-stable@20874 e93f8b46-1217-0410-a6f0-8f06a7374b81

app/models/issue.rb
test/unit/issue_test.rb

index 6a26cf5de66f2824076fe9d2ee5191bd588cad32..12277b9ba1aa355b40368e7ce163e1c0c55d51ba 100644 (file)
@@ -1758,7 +1758,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
index 1c49d0462605d9f84efa186eac0c6cfa64973be4..9a712437742788dfdf62a0c259c2d0200b87af67 100644 (file)
@@ -1476,6 +1476,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)