Merge pull request #9660 from tchak/feat-annotations-can-be-conditioned-by-champs

ETQ Administrateur, je voudrais pouvoir conditionner les annotations en utilisant des champs du formulaire
This commit is contained in:
Paul Chavard 2023-11-03 12:46:25 +00:00 committed by GitHub
commit 7a88a57085
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 39 additions and 2 deletions

View file

@ -1,3 +1,3 @@
%ul.types-de-champ-block{ id: block_id, data: sortable_options }
- @coordinates.each.with_index do |coordinate, i|
= render TypesDeChampEditor::ChampComponent.new(coordinate: coordinate, upper_coordinates: @upper_coordinates + @coordinates.take(i))
- @coordinates.each do |coordinate|
= render TypesDeChampEditor::ChampComponent.new(coordinate: coordinate, upper_coordinates: coordinate.upper_coordinates)

View file

@ -383,6 +383,11 @@ module Administrateurs
revision: [],
procedure: []
},
revision_types_de_champ_public: {
type_de_champ: { piece_justificative_template_attachment: :blob, revision: [], procedure: [] },
revision: [],
procedure: []
},
procedure: []
}).find(@procedure.id)
end

View file

@ -46,6 +46,10 @@ class ProcedureRevisionTypeDeChamp < ApplicationRecord
upper += parent.upper_coordinates
end
if type_de_champ.private?
upper += revision.revision_types_de_champ_public
end
upper
end

View file

@ -23,5 +23,33 @@ describe ProcedureRevisionTypeDeChamp do
it { expect(l2_2.upper_coordinates.map(&:libelle)).to match_array(["l1", "l2.1"]) }
end
context 'when the coordinate is an annotation' do
let(:procedure) do
create(:procedure,
types_de_champ_private: [
{ libelle: 'a1' },
{ libelle: 'a2' }
],
types_de_champ_public: [
{ libelle: 'l1' },
{
type: :repetition, libelle: 'l2', children: [
{ libelle: 'l2.1' },
{ libelle: 'l2.2' }
]
}
])
end
let(:a2) do
procedure
.draft_revision
.revision_types_de_champ.joins(:type_de_champ)
.find_by(type_de_champ: { libelle: 'a2' })
end
it { expect(a2.upper_coordinates.map(&:libelle)).to match_array(["l1", "l2", "a1"]) }
end
end
end