From 5e9320137b094910860a72bf3cd469ee6cae8b75 Mon Sep 17 00:00:00 2001 From: Jean-Philippe Lang Date: Sun, 9 Sep 2012 10:01:03 +0000 Subject: [PATCH] Fixed that target version is lost on project copy for issues that are assigned to a shared version from another project. git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@10333 e93f8b46-1217-0410-a6f0-8f06a7374b81 --- app/models/project.rb | 2 +- test/unit/project_test.rb | 16 ++++++++++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/app/models/project.rb b/app/models/project.rb index e3889ff23..da58c96db 100644 --- a/app/models/project.rb +++ b/app/models/project.rb @@ -776,7 +776,7 @@ class Project < ActiveRecord::Base new_issue.copy_from(issue, :subtasks => false) new_issue.project = self # Reassign fixed_versions by name, since names are unique per project - if issue.fixed_version + if issue.fixed_version && issue.fixed_version.project == project new_issue.fixed_version = self.versions.detect {|v| v.name == issue.fixed_version.name} end # Reassign the category by name, since names are unique per project diff --git a/test/unit/project_test.rb b/test/unit/project_test.rb index 1171c5e93..fac2307ed 100644 --- a/test/unit/project_test.rb +++ b/test/unit/project_test.rb @@ -844,6 +844,22 @@ class ProjectTest < ActiveSupport::TestCase assert_not_equal assigned_version.id, copied_issue.fixed_version.id # Different record end + should "keep target shared versions from other project" do + assigned_version = Version.generate!(:name => "Assigned Issues", :status => 'open', :project_id => 1, :sharing => 'system') + issue = Issue.generate_for_project!(@source_project, + :fixed_version => assigned_version, + :subject => "keep target shared versions", + :tracker_id => 1, + :project_id => @source_project.id) + + assert @project.copy(@source_project) + @project.reload + copied_issue = @project.issues.first(:conditions => {:subject => "keep target shared versions"}) + + assert copied_issue + assert_equal assigned_version, copied_issue.fixed_version + end + should "copy issue relations" do Setting.cross_project_issue_relations = '1'