feat(champs.contextual_validation): extract contextual methods validation in module
This commit is contained in:
parent
331dfd3044
commit
c6e21fb7bd
2 changed files with 32 additions and 21 deletions
|
@ -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
|
||||
|
|
31
app/models/concerns/champs_validate_concern.rb
Normal file
31
app/models/concerns/champs_validate_concern.rb
Normal 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
|
Loading…
Add table
Reference in a new issue