refactor: remove target in tags

This commit is contained in:
simon lehericey 2024-05-14 16:37:55 +02:00
parent fe5c655a52
commit 43fb1ddeb5
No known key found for this signature in database
GPG key ID: CDE670D827C7B3C5

View file

@ -66,7 +66,7 @@ module TagsSubstitutionConcern
label: 'numéro du dossier', label: 'numéro du dossier',
libelle: 'numéro du dossier', libelle: 'numéro du dossier',
description: '', description: '',
target: :id, lambda: -> (d) { d.id },
available_for_states: Dossier::SOUMIS available_for_states: Dossier::SOUMIS
} }
@ -154,21 +154,21 @@ module TagsSubstitutionConcern
id: 'individual_gender', id: 'individual_gender',
libelle: 'civilité', libelle: 'civilité',
description: 'M., Mme', description: 'M., Mme',
target: :gender, lambda: -> (d) { d.individual&.gender },
available_for_states: Dossier::SOUMIS available_for_states: Dossier::SOUMIS
}, },
{ {
id: 'individual_last_name', id: 'individual_last_name',
libelle: 'nom', libelle: 'nom',
description: "nom de l'usager", description: "nom de l'usager",
target: :nom, lambda: -> (d) { d.individual&.nom },
available_for_states: Dossier::SOUMIS available_for_states: Dossier::SOUMIS
}, },
{ {
id: 'individual_first_name', id: 'individual_first_name',
libelle: 'prénom', libelle: 'prénom',
description: "prénom de l'usager", description: "prénom de l'usager",
target: :prenom, lambda: -> (d) { d.individual&.prenom },
available_for_states: Dossier::SOUMIS available_for_states: Dossier::SOUMIS
} }
] ]
@ -178,35 +178,35 @@ module TagsSubstitutionConcern
id: 'entreprise_siren', id: 'entreprise_siren',
libelle: 'SIREN', libelle: 'SIREN',
description: '', description: '',
target: :siren, lambda: -> (d) { d.etablissement&.entreprise&.siren },
available_for_states: Dossier::SOUMIS available_for_states: Dossier::SOUMIS
}, },
{ {
id: 'entreprise_numero_tva_intracommunautaire', id: 'entreprise_numero_tva_intracommunautaire',
libelle: 'numéro de TVA intracommunautaire', libelle: 'numéro de TVA intracommunautaire',
description: '', description: '',
target: :numero_tva_intracommunautaire, lambda: -> (d) { d.etablissement&.entreprise&.numero_tva_intracommunautaire },
available_for_states: Dossier::SOUMIS available_for_states: Dossier::SOUMIS
}, },
{ {
id: 'entreprise_siret_siege_social', id: 'entreprise_siret_siege_social',
libelle: 'SIRET du siège social', libelle: 'SIRET du siège social',
description: '', description: '',
target: :siret_siege_social, lambda: -> (d) { d.etablissement&.entreprise&.siret_siege_social },
available_for_states: Dossier::SOUMIS available_for_states: Dossier::SOUMIS
}, },
{ {
id: 'entreprise_raison_sociale', id: 'entreprise_raison_sociale',
libelle: 'raison sociale', libelle: 'raison sociale',
description: '', description: '',
target: :raison_sociale, lambda: -> (d) { d.etablissement&.entreprise&.raison_sociale },
available_for_states: Dossier::SOUMIS available_for_states: Dossier::SOUMIS
}, },
{ {
id: 'entreprise_adresse', id: 'entreprise_adresse',
libelle: 'adresse', libelle: 'adresse',
description: '', description: '',
target: :inline_adresse, lambda: -> (d) { d.etablissement&.entreprise&.inline_adresse },
available_for_states: Dossier::SOUMIS available_for_states: Dossier::SOUMIS
} }
] ]
@ -399,12 +399,8 @@ module TagsSubstitutionConcern
end.join('') end.join('')
end end
def replace_tag(tag, data) def replace_tag(tag, dossier)
value = if tag.key?(:target) value = instance_exec(dossier, &tag[:lambda])
data.public_send(tag[:target])
else
instance_exec(data, &tag[:lambda])
end
if escape_unsafe_tags? && tag.fetch(:escapable, true) if escape_unsafe_tags? && tag.fetch(:escapable, true)
escape_once(value) escape_once(value)
@ -457,8 +453,8 @@ module TagsSubstitutionConcern
[champ_private_tags(dossier:), dossier], [champ_private_tags(dossier:), dossier],
[dossier_tags, dossier], [dossier_tags, dossier],
[ROUTAGE_TAGS, dossier], [ROUTAGE_TAGS, dossier],
[INDIVIDUAL_TAGS, dossier.individual], [INDIVIDUAL_TAGS, dossier],
[ENTREPRISE_TAGS, dossier.etablissement&.entreprise] [ENTREPRISE_TAGS, dossier]
] ]
end end
end end