diff --git a/app/models/procedure_presentation.rb b/app/models/procedure_presentation.rb index f6dd14071..4f536db34 100644 --- a/app/models/procedure_presentation.rb +++ b/app/models/procedure_presentation.rb @@ -330,8 +330,11 @@ class ProcedurePresentation < ApplicationRecord if field['scope'].present? I18n.t(field['scope']).map(&:to_a).map(&:reverse) elsif field['table'] == 'groupe_instructeur' - instructeur.groupe_instructeurs - .map { [_1.label, _1.id] } + instructeur.groupe_instructeurs.filter_map do + if _1.procedure_id == procedure.id + [_1.label, _1.id] + end + end end end diff --git a/spec/models/procedure_presentation_spec.rb b/spec/models/procedure_presentation_spec.rb index 2e7168e21..63d489532 100644 --- a/spec/models/procedure_presentation_spec.rb +++ b/spec/models/procedure_presentation_spec.rb @@ -854,4 +854,15 @@ describe ProcedurePresentation do it { is_expected.to eq(sorted_ids) } end end + + describe '#field_enum' do + context "field is groupe_instructeur" do + let!(:gi_2) { instructeur.groupe_instructeurs.create(label: 'gi2', procedure:) } + let!(:gi_3) { instructeur.groupe_instructeurs.create(label: 'gi3', procedure: create(:procedure)) } + + subject { procedure_presentation.field_enum('groupe_instructeur/id') } + + it { is_expected.to eq([['défaut', procedure.defaut_groupe_instructeur.id], ['gi2', gi_2.id]]) } + end + end end