inject groupe_instructeurs when possible

This commit is contained in:
simon lehericey 2024-11-06 20:57:51 +01:00
parent e2bc45dc4a
commit 1277500069
No known key found for this signature in database
GPG key ID: CDE670D827C7B3C5
2 changed files with 28 additions and 1 deletions

View file

@ -83,7 +83,12 @@ module ColumnsConcern
private
def groupe_instructeurs_id_column = Columns::DossierColumn.new(procedure_id: id, table: 'groupe_instructeur', column: 'id', type: :enum)
def groupe_instructeurs_id_column
groupes = Current.user&.instructeur&.groupe_instructeurs || []
options_for_select = groupes.filter_map { [_1.label, _1.id] if _1.procedure_id == id }
Columns::DossierColumn.new(procedure_id: id, table: 'groupe_instructeur', column: 'id', type: :enum, options_for_select:)
end
def followers_instructeurs_email_column = Columns::DossierColumn.new(procedure_id: id, table: 'followers_instructeurs', column: 'email')

View file

@ -133,6 +133,28 @@ describe ColumnsConcern do
it { is_expected.to include(decision_on, decision_before_field) }
end
context 'when the procedure has several groupe instructeur' do
let(:procedure) { create(:procedure, :routee) }
let(:groupe_1) { procedure.groupe_instructeurs.first }
let(:groupe_2) { procedure.groupe_instructeurs.last }
let(:groupe_instructeur_column) { procedure.find_column(label: "Groupe instructeur") }
context 'and no instructeur is available in current' do
it { expect(groupe_instructeur_column.options_for_select).to eq([]) }
end
context 'and instructeur is available in current' do
let(:instructeur) { create(:instructeur) }
before do
procedure.groupe_instructeurs.each { _1.add(instructeur) }
allow(Current).to receive(:user).and_return(instructeur.user)
end
it { expect(groupe_instructeur_column.options_for_select).to match_array([groupe_1, groupe_2].map { [_1.label, _1.id] }) }
end
end
end
describe 'export' do