diff --git a/app/models/custom_field.rb b/app/models/custom_field.rb index 86227a4cf..22f29d3ac 100644 --- a/app/models/custom_field.rb +++ b/app/models/custom_field.rb @@ -53,6 +53,11 @@ class CustomField < ActiveRecord::Base CUSTOM_FIELDS_NAMES = CUSTOM_FIELDS_TABS.collect{|v| v[:name]} + def field_format=(arg) + # cannot change format of a saved custom field + super if new_record? + end + def set_searchable # make sure these fields are not searchable self.searchable = false if %w(int float date bool).include?(field_format) diff --git a/test/unit/custom_field_test.rb b/test/unit/custom_field_test.rb index 547e712db..d858045ed 100644 --- a/test/unit/custom_field_test.rb +++ b/test/unit/custom_field_test.rb @@ -57,6 +57,12 @@ class CustomFieldTest < ActiveSupport::TestCase assert field.valid? end + def test_should_not_change_field_format_of_existing_custom_field + field = CustomField.find(1) + field.field_format = 'int' + assert_equal 'list', field.field_format + end + def test_possible_values_should_accept_an_array field = CustomField.new field.possible_values = ["One value", ""]