Fixed that custom values get saved when assigning custom values after changing to a tracker with different custom fields (#9737).

git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@8103 e93f8b46-1217-0410-a6f0-8f06a7374b81
pull/1186/head
Jean-Philippe Lang 13 years ago committed by Martin Linkhorst
parent e5a0f29232
commit 10a41782fa
  1. 16
      test/unit/issue_test.rb
  2. 2
      vendor/plugins/acts_as_customizable/lib/acts_as_customizable.rb

@ -197,6 +197,22 @@ class IssueTest < ActiveSupport::TestCase
assert_equal custom_value.id, issue.custom_value_for(field).id
end
def test_should_not_update_custom_fields_on_changing_tracker_with_different_custom_fields
issue = Issue.new(:project => Project.find(1))
issue.force_attributes = {:tracker_id => 1, :author_id => 1, :status_id => 1, :subject => 'Test', :custom_field_values => {'2' => 'Test'}}
issue.save!
assert !Tracker.find(2).custom_field_ids.include?(2)
issue = Issue.find(issue.id)
issue.attributes = {:tracker_id => 2, :custom_field_values => {'1' => ''}}
issue = Issue.find(issue.id)
custom_value = issue.custom_value_for(2)
assert_not_nil custom_value
assert_equal 'Test', custom_value.value
end
def test_assigning_tracker_id_should_reload_custom_fields_values
issue = Issue.new.tap do |i|
i.force_attributes = { :project => Project.find(1) }

@ -72,7 +72,6 @@ module Redmine
custom_field_values.each do |custom_value|
custom_value.value = values[custom_value.custom_field_id.to_s] if values.has_key?(custom_value.custom_field_id.to_s)
end if values.is_a?(Hash)
self.custom_values = custom_field_values
end
def custom_field_values
@ -93,6 +92,7 @@ module Redmine
end
def save_custom_field_values
self.custom_values = custom_field_values
custom_field_values.each(&:save)
@custom_field_values_changed = false
@custom_field_values = nil

Loading…
Cancel
Save