Project

General

Profile

Bug #1733

Updated by liaham over 1 year ago

Redmine 5.0.5: Custom field format 'Float' does not support values inserted in the users language, e.g., `1,22` instead of `1.22`. 

 ```ruby 
 # lib/redmine/field_format.rb:539 
 def validate_single_value(custom_field, value, customized=nil) 
   errs = super 
   errs << ::I18n.t('activerecord.errors.messages.invalid') unless (Kernel.Float(value) rescue nil) # <-- Kernle.Float(value) accepts only 1.22! 
   errs 
 end 
 ``` 
 The values needs to be normalized into the accepted format before it will get validated. The method could look something like this: 

 ```ruby 
 def normalize_float(value) 
   delimiter = I18n::t('number.format.delimiter') 
   separator = I18n::t('number.format.separator') 
   value.gsub!(/[#{delimiter}#{separator}]/, delimiter => '', separator => '.') 
 end 

 ```

Back