Patch #15277 ยป custom_field_format_validation_fix.patch
| test/unit/custom_field_test.rb | ||
|---|---|---|
| 279 | 279 | |
| 280 | 280 | 
        assert_equal [fields[0]], CustomField.visible(User.anonymous).order("id").to_a
   | 
| 281 | 281 | 
    end  | 
| 282 | ||
| 283 | 
    def test_field_format_validation_includes_formats_added_at_runtime  | 
|
| 284 | 
    foobar_field_format_klass = Class.new(Redmine::CustomFieldFormat)  | 
|
| 285 | 
    Redmine::CustomFieldFormat.map do |type|  | 
|
| 286 | 
          type.register foobar_field_format_klass.new('foobar', :label => 'Foobar', :order => 1.0)
   | 
|
| 287 | 
    end  | 
|
| 288 | ||
| 289 | 
    field = CustomField.new(:name => 'Some Custom Field', :field_format => 'foobar')  | 
|
| 290 | ||
| 291 | 
    assert field.valid?, 'field should be valid'  | 
|
| 292 | 
    end  | 
|
| 282 | 293 | 
    end  | 
| 283 | 
    -  | 
|
| app/models/custom_field.rb | ||
|---|---|---|
| 26 | 26 | 
    validates_presence_of :name, :field_format  | 
| 27 | 27 | 
    validates_uniqueness_of :name, :scope => :type  | 
| 28 | 28 | 
    validates_length_of :name, :maximum => 30  | 
| 29 | 
      validates_inclusion_of :field_format, :in => Redmine::CustomFieldFormat.available_formats
   | 
|
| 29 | 
      validates_inclusion_of :field_format, :in => Proc.new { Redmine::CustomFieldFormat.available_formats }
   | 
|
| 30 | 30 | 
    validate :validate_custom_field  | 
| 31 | 31 | |
| 32 | 32 | 
    before_validation :set_searchable  |