summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--test/unit/issue_test.rb16
-rw-r--r--vendor/plugins/acts_as_customizable/lib/acts_as_customizable.rb2
2 files changed, 17 insertions, 1 deletions
diff --git a/test/unit/issue_test.rb b/test/unit/issue_test.rb
index d19c9458c..617b121d2 100644
--- a/test/unit/issue_test.rb
+++ b/test/unit/issue_test.rb
@@ -232,6 +232,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_id => 1)
+ issue.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(:project => Project.find(1))
assert issue.custom_field_values.empty?
diff --git a/vendor/plugins/acts_as_customizable/lib/acts_as_customizable.rb b/vendor/plugins/acts_as_customizable/lib/acts_as_customizable.rb
index 10ba12341..422b3ccb9 100644
--- a/vendor/plugins/acts_as_customizable/lib/acts_as_customizable.rb
+++ b/vendor/plugins/acts_as_customizable/lib/acts_as_customizable.rb
@@ -71,7 +71,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
@@ -92,6 +91,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