feat(conditional): annotations can be conditioned by champs
This commit is contained in:
parent
532fe466df
commit
026885ebcf
3 changed files with 37 additions and 0 deletions
|
@ -383,6 +383,11 @@ module Administrateurs
|
||||||
revision: [],
|
revision: [],
|
||||||
procedure: []
|
procedure: []
|
||||||
},
|
},
|
||||||
|
revision_types_de_champ_public: {
|
||||||
|
type_de_champ: { piece_justificative_template_attachment: :blob, revision: [], procedure: [] },
|
||||||
|
revision: [],
|
||||||
|
procedure: []
|
||||||
|
},
|
||||||
procedure: []
|
procedure: []
|
||||||
}).find(@procedure.id)
|
}).find(@procedure.id)
|
||||||
end
|
end
|
||||||
|
|
|
@ -46,6 +46,10 @@ class ProcedureRevisionTypeDeChamp < ApplicationRecord
|
||||||
upper += parent.upper_coordinates
|
upper += parent.upper_coordinates
|
||||||
end
|
end
|
||||||
|
|
||||||
|
if type_de_champ.private?
|
||||||
|
upper += revision.revision_types_de_champ_public
|
||||||
|
end
|
||||||
|
|
||||||
upper
|
upper
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -23,5 +23,33 @@ describe ProcedureRevisionTypeDeChamp do
|
||||||
|
|
||||||
it { expect(l2_2.upper_coordinates.map(&:libelle)).to match_array(["l1", "l2.1"]) }
|
it { expect(l2_2.upper_coordinates.map(&:libelle)).to match_array(["l1", "l2.1"]) }
|
||||||
end
|
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
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in a new issue