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
This commit is contained in:
parent
9333853f23
commit
a63027e175
|
@ -278,6 +278,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?
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue