Fixed that values of custom fields are not kept in issues when copying a project (#13910).
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@11843 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
parent
7e41730293
commit
ece5232110
|
@ -848,6 +848,9 @@ class Project < ActiveRecord::Base
|
|||
new_issue = Issue.new
|
||||
new_issue.copy_from(issue, :subtasks => false, :link => false)
|
||||
new_issue.project = self
|
||||
# Changing project resets the custom field values
|
||||
# TODO: handle this in Issue#project=
|
||||
new_issue.custom_field_values = issue.custom_field_values.inject({}) {|h,v| h[v.custom_field_id] = v.value; h}
|
||||
# Reassign fixed_versions by name, since names are unique per project
|
||||
if issue.fixed_version && issue.fixed_version.project == project
|
||||
new_issue.fixed_version = self.versions.detect {|v| v.name == issue.fixed_version.name}
|
||||
|
|
|
@ -69,6 +69,19 @@ class ProjectCopyTest < ActiveSupport::TestCase
|
|||
assert_equal "Closed", copied_issue.status.name
|
||||
end
|
||||
|
||||
test "#copy should copy issues custom values" do
|
||||
field = IssueCustomField.generate!(:is_for_all => true, :trackers => Tracker.all)
|
||||
issue = Issue.generate!(:project => @source_project, :subject => 'Custom field copy')
|
||||
issue.custom_field_values = {field.id => 'custom'}
|
||||
issue.save!
|
||||
assert_equal 'custom', issue.reload.custom_field_value(field)
|
||||
|
||||
assert @project.copy(@source_project)
|
||||
copy = @project.issues.find_by_subject('Custom field copy')
|
||||
assert copy
|
||||
assert_equal 'custom', copy.reload.custom_field_value(field)
|
||||
end
|
||||
|
||||
test "#copy should copy issues assigned to a locked version" do
|
||||
User.current = User.find(1)
|
||||
assigned_version = Version.generate!(:name => "Assigned Issues")
|
||||
|
|
Loading…
Reference in New Issue