#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,
|
target: :motivation,
|
||||||
available_for_states: Dossier::TERMINE
|
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',
|
libelle: 'date de dépôt',
|
||||||
description: 'Date du passage en construction du dossier par l’usager',
|
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)
|
def replace_tags_with_values_from_data(text, tags, data)
|
||||||
if data.present?
|
if data.present?
|
||||||
tags.reduce(text) do |acc, tag|
|
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
|
end
|
||||||
else
|
else
|
||||||
text
|
text
|
||||||
|
|
|
@ -70,6 +70,29 @@ describe TagsSubstitutionConcern, type: :model do
|
||||||
end
|
end
|
||||||
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
|
context 'when the procedure has a type de champ named libelleA et libelleB' do
|
||||||
let(:types_de_champ) do
|
let(:types_de_champ) do
|
||||||
[
|
[
|
||||||
|
|
Loading…
Reference in a new issue