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:
commit
7a88a57085
4 changed files with 39 additions and 2 deletions
|
@ -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)
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in a new issue