From 3fa2f5253230114ed56ac10768f8137c10770a66 Mon Sep 17 00:00:00 2001 From: Jean-Philippe Lang Date: Sun, 2 Oct 2016 10:18:53 +0000 Subject: [PATCH] Merged r15848 (#23764). git-svn-id: http://svn.redmine.org/redmine/branches/3.3-stable@15870 e93f8b46-1217-0410-a6f0-8f06a7374b81 --- app/models/issue.rb | 4 ++-- test/unit/issue_test.rb | 12 +++++++++++- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/app/models/issue.rb b/app/models/issue.rb index 9fb275495..d2e36e8fd 100644 --- a/app/models/issue.rb +++ b/app/models/issue.rb @@ -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) diff --git a/test/unit/issue_test.rb b/test/unit/issue_test.rb index 10b5c744c..d7efda784 100644 --- a/test/unit/issue_test.rb +++ b/test/unit/issue_test.rb @@ -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) -- 2.39.5