feat(champs.contextual_validation): extract contextual methods validation in module

This commit is contained in:
mfo 2024-04-02 10:56:43 +02:00
parent 331dfd3044
commit c6e21fb7bd
No known key found for this signature in database
GPG key ID: 7CE3E1F5B794A8EC
2 changed files with 32 additions and 21 deletions

View file

@ -1,5 +1,6 @@
class Champ < ApplicationRecord
include ChampConditionalConcern
include ChampsValidateConcern
belongs_to :dossier, inverse_of: false, touch: true, optional: false
belongs_to :type_de_champ, inverse_of: :champ, optional: false
@ -249,27 +250,6 @@ class Champ < ApplicationRecord
end
end
protected
def valid_champ_value?
valid?(public? ? :champs_public_value : :champs_private_value)
end
private
def validate_champ_value?
return false unless visible?
case validation_context
when :champs_public_value
public?
when :champs_private_value
private?
else
false
end
end
def html_id
"champ-#{public_id}"
end

View file

@ -0,0 +1,31 @@
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?
return false unless visible?
case validation_context
when :champs_public_value
public?
when :champs_private_value
private?
else
false
end
end
def validate_champ_value_or_prefill?
validate_champ_value? || validation_context == :prefill
end
end
end