aboutsummaryrefslogtreecommitdiffstats
path: root/app/models
diff options
context:
space:
mode:
authorZog2018-05-11 10:47:42 +0200
committerZog2018-05-11 10:47:42 +0200
commit193b8419e3a4445d9c14536ca8a461685b6be415 (patch)
treed16c8347e9a67e119b9f5abf4c701c2e7ae70139 /app/models
parent7b7a7b44a9c8d016e1c0cadc7b8f887de9dcac0a (diff)
downloadchouette-core-6852-make-capacity-optional.tar.bz2
Refs #6852; Update Customfields6852-make-capacity-optional
Better validations for List with an hash as `list_values`
Diffstat (limited to 'app/models')
-rw-r--r--app/models/custom_field.rb19
1 files changed, 15 insertions, 4 deletions
diff --git a/app/models/custom_field.rb b/app/models/custom_field.rb
index deb0326f8..7fb45ffa0 100644
--- a/app/models/custom_field.rb
+++ b/app/models/custom_field.rb
@@ -158,12 +158,23 @@ class CustomField < ApplicationModel
end
class List < Integer
+ def collection_is_a_hash?
+ options["list_values"].is_a?(Hash)
+ end
+
def validate
- super
return unless value.present?
- unless value >= 0 && value < options["list_values"].size
- @owner.errors.add errors_key, "'#{@raw_value}' is not a valid value"
- @valid = false
+ if collection_is_a_hash?
+ unless options["list_values"].include(value.to_s)
+ @owner.errors.add errors_key, "'#{@raw_value}' is not a valid value"
+ @valid = false
+ end
+ else
+ super
+ unless value >= 0 && value < options["list_values"].size
+ @owner.errors.add errors_key, "'#{@raw_value}' is not a valid value"
+ @valid = false
+ end
end
end