aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorcedricnjanga2018-03-15 06:57:35 -0700
committercedricnjanga2018-03-15 06:57:35 -0700
commitc297e8a97f41221c0a6cfd5f3aee89589811d47c (patch)
tree229625893eae70c42aa13ab632d7919bafc972af
parent7ccef25a79817223cf5cd8962f7de72279f33649 (diff)
downloadchouette-core-c297e8a97f41221c0a6cfd5f3aee89589811d47c.tar.bz2
Refs #6139 Change Min max values validation concern to allowed float values
-rw-r--r--app/models/concerns/min_max_values_validation.rb11
-rw-r--r--app/models/generic_attribute_control/min_max.rb4
-rw-r--r--app/models/vehicle_journey_control/speed.rb2
3 files changed, 11 insertions, 6 deletions
diff --git a/app/models/concerns/min_max_values_validation.rb b/app/models/concerns/min_max_values_validation.rb
index eff779d81..af7174cea 100644
--- a/app/models/concerns/min_max_values_validation.rb
+++ b/app/models/concerns/min_max_values_validation.rb
@@ -2,12 +2,21 @@ module MinMaxValuesValidation
extend ActiveSupport::Concern
included do
+ before_validation :force_min_max_values_to_respect_numeric_format
validates_presence_of :minimum, :maximum
+ validates_numericality_of :minimum, :maximum, allow_nil: true, greater_than_or_equal_to: 0
validate :min_max_values_validation
end
+ def force_min_max_values_to_respect_numeric_format
+ if self.minimum && self.maximum
+ self.minimum = self.minimum.gsub(",", ".")
+ self.maximum = self.maximum.gsub(",", ".")
+ end
+ end
+
def min_max_values_validation
- return true if (minimum && maximum) && (minimum.to_i < maximum.to_i)
+ return true if (maximum && maximum) && (minimum.to_f < maximum.to_f)
errors.add(:minimum, I18n.t('compliance_controls.min_max_values', min: minimum, max: maximum))
end
end
diff --git a/app/models/generic_attribute_control/min_max.rb b/app/models/generic_attribute_control/min_max.rb
index 18873b683..bab900f0e 100644
--- a/app/models/generic_attribute_control/min_max.rb
+++ b/app/models/generic_attribute_control/min_max.rb
@@ -1,9 +1,7 @@
module GenericAttributeControl
class MinMax < ComplianceControl
store_accessor :control_attributes, :minimum, :maximum, :target
-
- validates_numericality_of :minimum, allow_nil: true, greater_than_or_equal_to: 0
- validates_numericality_of :maximum, allow_nil: true, greater_than_or_equal_to: 0
+
validates :target, presence: true
include MinMaxValuesValidation
diff --git a/app/models/vehicle_journey_control/speed.rb b/app/models/vehicle_journey_control/speed.rb
index e5e331b50..c9775e7a3 100644
--- a/app/models/vehicle_journey_control/speed.rb
+++ b/app/models/vehicle_journey_control/speed.rb
@@ -2,8 +2,6 @@ module VehicleJourneyControl
class Speed < ComplianceControl
store_accessor :control_attributes, :minimum, :maximum
- validates_numericality_of :minimum, allow_nil: true, greater_than_or_equal_to: 0
- validates_numericality_of :maximum, allow_nil: true, greater_than_or_equal_to: 0
include MinMaxValuesValidation
def self.default_code; "3-VehicleJourney-2" end