2020-03-25 19:46:16 +00:00
|
|
|
# frozen_string_literal: true
|
|
|
|
|
|
|
|
# Una lista de valores predefinidos
|
|
|
|
class MetadataPredefinedArray < MetadataArray
|
2023-10-06 15:22:15 +00:00
|
|
|
# Genera una lista de valores para usar en options_for_select
|
|
|
|
#
|
|
|
|
# @todo Unificar la definición de valores por defecto con respecto a
|
|
|
|
# otros campos (como MetadataPredefinedValue), por ahora mantenemos
|
|
|
|
# por retrocompatibilidad.
|
|
|
|
# @return [Hash]
|
2020-03-25 19:46:16 +00:00
|
|
|
def values
|
2023-10-06 15:22:15 +00:00
|
|
|
@values ||= layout.dig(:metadata, name, 'values')&.to_h do |k, v|
|
2020-11-07 23:51:00 +00:00
|
|
|
[v[I18n.locale.to_s], k]
|
2023-10-06 15:22:15 +00:00
|
|
|
end
|
2020-03-25 19:46:16 +00:00
|
|
|
end
|
2023-10-06 19:59:59 +00:00
|
|
|
|
|
|
|
private
|
|
|
|
|
|
|
|
# Solo permite guardar los valores predefinidos
|
|
|
|
#
|
|
|
|
# @param :value [Array]
|
|
|
|
# @return [Array]
|
|
|
|
def sanitize(value)
|
|
|
|
value = super(value)
|
|
|
|
|
2023-10-06 20:02:30 +00:00
|
|
|
value & values.values
|
2023-10-06 19:59:59 +00:00
|
|
|
end
|
2020-03-25 19:46:16 +00:00
|
|
|
end
|