scinote-web/app/models/form_number_field_value.rb
2025-01-06 10:20:39 +01:00

40 lines
910 B
Ruby

# frozen_string_literal: true
class FormNumberFieldValue < FormFieldValue
def value=(val)
self.unit = form_field.data['unit']
if val.is_a?(Array)
self.number = val[0]
self.number_to = val[1]
else
self.number = val
end
end
def value
range? ? [number, number_to] : number
end
def range?
number_to.present?
end
def formatted
number_with_unit = "#{number} #{unit}"
range? ? "#{number_with_unit} - #{number_to} #{unit}" : number_with_unit
end
def value_in_range?
return true if number.nil?
validation_params = form_field.data.dig('validations', 'response_validation')
return true unless validation_params && validation_params['enabled']
min_value = validation_params['min']
max_value = validation_params['max']
!((min_value.present? && min_value > number) || (max_value.present? && max_value < number))
end
end