Skip to content

Commit

Permalink
feat(conditional): annotations can be conditioned by champs
Browse files Browse the repository at this point in the history
  • Loading branch information
tchak committed Nov 3, 2023
1 parent 532fe46 commit e329dfa
Show file tree
Hide file tree
Showing 3 changed files with 37 additions and 0 deletions.
5 changes: 5 additions & 0 deletions app/controllers/administrateurs/procedures_controller.rb
Original file line number Diff line number Diff line change
Expand Up @@ -383,6 +383,11 @@ def annotations
revision: [],
procedure: []
},
revision_types_de_champ_public: {
type_de_champ: { piece_justificative_template_attachment: :blob, revision: [], procedure: [] },
revision: [],
procedure: []
},
procedure: []
}).find(@procedure.id)
end
Expand Down
4 changes: 4 additions & 0 deletions app/models/procedure_revision_type_de_champ.rb
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,10 @@ def upper_coordinates
upper += parent.upper_coordinates
end

if type_de_champ.private?
upper += revision.revision_types_de_champ_public
end

upper
end

Expand Down
28 changes: 28 additions & 0 deletions spec/models/procedure_revision_type_de_champ_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -23,5 +23,33 @@

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, 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(["a1", "l1"]) }
end
end
end

0 comments on commit e329dfa

Please sign in to comment.