2024-04-29 00:17:15 +02:00
|
|
|
# frozen_string_literal: true
|
|
|
|
|
2024-04-02 10:56:43 +02:00
|
|
|
module ChampsValidateConcern
|
|
|
|
extend ActiveSupport::Concern
|
|
|
|
|
|
|
|
included do
|
|
|
|
protected
|
|
|
|
|
|
|
|
# Champs public/private must be validated depending on the context
|
|
|
|
def valid_champ_value?
|
|
|
|
valid?(public? ? :champs_public_value : :champs_private_value)
|
|
|
|
end
|
|
|
|
|
|
|
|
private
|
|
|
|
|
|
|
|
def validate_champ_value?
|
|
|
|
case validation_context
|
|
|
|
when :champs_public_value
|
2024-09-20 14:54:26 +02:00
|
|
|
public? && in_dossier_revision? && visible?
|
2024-04-02 10:56:43 +02:00
|
|
|
when :champs_private_value
|
2024-09-20 14:54:26 +02:00
|
|
|
private? && in_dossier_revision? && visible?
|
2024-04-02 10:56:43 +02:00
|
|
|
else
|
|
|
|
false
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
def validate_champ_value_or_prefill?
|
|
|
|
validate_champ_value? || validation_context == :prefill
|
|
|
|
end
|
2024-09-20 14:54:26 +02:00
|
|
|
|
|
|
|
def in_dossier_revision?
|
2024-11-14 14:13:58 +01:00
|
|
|
dossier.revision.types_de_champ.any? { _1.stable_id == stable_id } && is_type?(type_de_champ.type_champ)
|
2024-09-20 14:54:26 +02:00
|
|
|
end
|
2024-04-02 10:56:43 +02:00
|
|
|
end
|
|
|
|
end
|