]> source.dussan.org Git - redmine.git/commitdiff
Merged r15848 (#23764).
authorJean-Philippe Lang <jp_lang@yahoo.fr>
Sun, 2 Oct 2016 10:18:53 +0000 (10:18 +0000)
committerJean-Philippe Lang <jp_lang@yahoo.fr>
Sun, 2 Oct 2016 10:18:53 +0000 (10:18 +0000)
git-svn-id: http://svn.redmine.org/redmine/branches/3.3-stable@15870 e93f8b46-1217-0410-a6f0-8f06a7374b81

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

index 9fb27549526569bc71027075748255948925c0b9..d2e36e8fd21b75ad2b634420e6ca14ccd80d67e2 100644 (file)
@@ -261,7 +261,7 @@ class Issue < ActiveRecord::Base
   # Copies attributes from another issue, arg can be an id or an Issue
   def copy_from(arg, options={})
     issue = arg.is_a?(Issue) ? arg : Issue.visible.find(arg)
-    self.attributes = issue.attributes.dup.except("id", "root_id", "parent_id", "lft", "rgt", "created_on", "updated_on")
+    self.attributes = issue.attributes.dup.except("id", "root_id", "parent_id", "lft", "rgt", "created_on", "updated_on", "closed_on")
     self.custom_field_values = issue.custom_field_values.inject({}) {|h,v| h[v.custom_field_id] = v.value; h}
     self.status = issue.status
     self.author = User.current
@@ -1394,7 +1394,7 @@ class Issue < ActiveRecord::Base
     end
     Project.where(condition).having_trackers
   end
+
   # Returns a scope of trackers that user can assign the issue to
   def allowed_target_trackers(user=User.current)
     self.class.allowed_target_trackers(project, user, tracker_id_was)
index 10b5c744ca4f7d1a9d8ef948d4b79fcf8027795c..d7efda784e3bb287f67df8296c1d09515480200d 100644 (file)
@@ -760,7 +760,7 @@ class IssueTest < ActiveSupport::TestCase
     user = User.find(2)
     group = Group.generate!
     group.users << user
+
     issue = Issue.generate!(:author_id => 1, :assigned_to => group)
     assert_include 4, issue.new_statuses_allowed_to(user).map(&:id)
   end
@@ -1332,6 +1332,16 @@ class IssueTest < ActiveSupport::TestCase
     end
   end
 
+  def test_copy_should_clear_closed_on
+    copied_open = Issue.find(8).copy(:status_id => 1)
+    assert copied_open.save
+    assert_nil copied_open.closed_on
+
+    copied_closed = Issue.find(8).copy
+    assert copied_closed.save
+    assert_not_nil copied_closed.closed_on
+  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)