##// END OF EJS Templates
Fixed that values of custom fields are not kept in issues when copying a project (#13910)....
Jean-Philippe Lang -
r11613:ece5232110d0
parent child
Show More
@@ -848,6 +848,9 class Project < ActiveRecord::Base
848 new_issue = Issue.new
848 new_issue = Issue.new
849 new_issue.copy_from(issue, :subtasks => false, :link => false)
849 new_issue.copy_from(issue, :subtasks => false, :link => false)
850 new_issue.project = self
850 new_issue.project = self
851 # Changing project resets the custom field values
852 # TODO: handle this in Issue#project=
853 new_issue.custom_field_values = issue.custom_field_values.inject({}) {|h,v| h[v.custom_field_id] = v.value; h}
851 # Reassign fixed_versions by name, since names are unique per project
854 # Reassign fixed_versions by name, since names are unique per project
852 if issue.fixed_version && issue.fixed_version.project == project
855 if issue.fixed_version && issue.fixed_version.project == project
853 new_issue.fixed_version = self.versions.detect {|v| v.name == issue.fixed_version.name}
856 new_issue.fixed_version = self.versions.detect {|v| v.name == issue.fixed_version.name}
@@ -69,6 +69,19 class ProjectCopyTest < ActiveSupport::TestCase
69 assert_equal "Closed", copied_issue.status.name
69 assert_equal "Closed", copied_issue.status.name
70 end
70 end
71
71
72 test "#copy should copy issues custom values" do
73 field = IssueCustomField.generate!(:is_for_all => true, :trackers => Tracker.all)
74 issue = Issue.generate!(:project => @source_project, :subject => 'Custom field copy')
75 issue.custom_field_values = {field.id => 'custom'}
76 issue.save!
77 assert_equal 'custom', issue.reload.custom_field_value(field)
78
79 assert @project.copy(@source_project)
80 copy = @project.issues.find_by_subject('Custom field copy')
81 assert copy
82 assert_equal 'custom', copy.reload.custom_field_value(field)
83 end
84
72 test "#copy should copy issues assigned to a locked version" do
85 test "#copy should copy issues assigned to a locked version" do
73 User.current = User.find(1)
86 User.current = User.find(1)
74 assigned_version = Version.generate!(:name => "Assigned Issues")
87 assigned_version = Version.generate!(:name => "Assigned Issues")
General Comments 0
You need to be logged in to leave comments. Login now