#4785 ajout d'une balise 'groupe instructeur'
This commit is contained in:
parent
c6bfcd5c2f
commit
059d80ea34
2 changed files with 43 additions and 1 deletions
|
@ -11,6 +11,13 @@ module TagsSubstitutionConcern
|
|||
target: :motivation,
|
||||
available_for_states: Dossier::TERMINE
|
||||
},
|
||||
{
|
||||
libelle: 'groupe instructeur',
|
||||
description: 'Le groupe instructeur en charge du dossier',
|
||||
lambda: -> (d) { d.groupe_instructeur.label },
|
||||
available?: -> (d) { d.procedure.routee? },
|
||||
available_for_states: Dossier::SOUMIS
|
||||
},
|
||||
{
|
||||
libelle: 'date de dépôt',
|
||||
description: 'Date du passage en construction du dossier par l’usager',
|
||||
|
@ -219,7 +226,19 @@ module TagsSubstitutionConcern
|
|||
def replace_tags_with_values_from_data(text, tags, data)
|
||||
if data.present?
|
||||
tags.reduce(text) do |acc, tag|
|
||||
replace_tag(acc, tag, data)
|
||||
# A tag is available by default.
|
||||
# If it has an :available? lambda, then we check its result to determine if the tag is available
|
||||
if tag.key?(:available?)
|
||||
tag_available = instance_exec(data, &tag[:available?])
|
||||
else
|
||||
tag_available = true
|
||||
end
|
||||
|
||||
if tag_available
|
||||
replace_tag(acc, tag, data)
|
||||
else
|
||||
text
|
||||
end
|
||||
end
|
||||
else
|
||||
text
|
||||
|
|
|
@ -70,6 +70,29 @@ describe TagsSubstitutionConcern, type: :model do
|
|||
end
|
||||
end
|
||||
|
||||
context 'when the template use the groupe instructeur tags' do
|
||||
let(:template) { '--groupe instructeur--' }
|
||||
let(:state) { Dossier.states.fetch(:en_instruction) }
|
||||
let!(:dossier) { create(:dossier, procedure: procedure, individual: individual, etablissement: etablissement, state: state) }
|
||||
context 'and the dossier has a groupe instructeur' do
|
||||
label = 'Ville de Bordeaux'
|
||||
before do
|
||||
gi = procedure.groupe_instructeurs.create(label: label)
|
||||
gi.dossiers << dossier
|
||||
dossier.update(groupe_instructeur: gi)
|
||||
dossier.reload
|
||||
end
|
||||
|
||||
it { expect(procedure.groupe_instructeurs.size).to eq(2) }
|
||||
it { expect(procedure.routee?).to eq(true) }
|
||||
it { is_expected.to eq(label) }
|
||||
end
|
||||
|
||||
context 'and the dossier has no groupe instructeur' do
|
||||
it { is_expected.to eq(template) }
|
||||
end
|
||||
end
|
||||
|
||||
context 'when the procedure has a type de champ named libelleA et libelleB' do
|
||||
let(:types_de_champ) do
|
||||
[
|
||||
|
|
Loading…
Reference in a new issue