modify groupe instructeur controller
This commit is contained in:
parent
ab0782530c
commit
69393c2921
3 changed files with 25 additions and 3 deletions
|
@ -74,9 +74,19 @@ module NewAdministrateur
|
|||
.without_group(@groupe_instructeur)
|
||||
end
|
||||
|
||||
def reaffecter_bulk_messages(target_group)
|
||||
bulk_messages = BulkMessage.joins(:groupe_instructeurs).where(groupe_instructeurs: { id: groupe_instructeur.id })
|
||||
bulk_messages.each do |bulk_message|
|
||||
bulk_message.groupe_instructeurs.delete(groupe_instructeur)
|
||||
if !bulk_message.groupe_instructeur_ids.include?(target_group.id)
|
||||
bulk_message.groupe_instructeurs << target_group
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
def reaffecter
|
||||
target_group = procedure.groupe_instructeurs.find(params[:target_group])
|
||||
|
||||
reaffecter_bulk_messages(target_group)
|
||||
groupe_instructeur.dossiers.with_discarded.find_each do |dossier|
|
||||
dossier.assign_to_groupe_instructeur(target_group, current_administrateur)
|
||||
end
|
||||
|
|
|
@ -8,5 +8,10 @@
|
|||
%p.mb-2 Messages envoyés aux usagers :
|
||||
- @bulk_messages.each do |bulk_message|
|
||||
%li.mb-1 #{bulk_message.instructeur.email} a envoyé un message le #{bulk_message.sent_at.strftime('%d-%m-%Y')} à #{bulk_message.dossier_count} usagers, #{bulk_message.piece_jointe.blob.present? ? "avec" : "sans"} pièce jointe
|
||||
%p.notice.mb-2.mt-4 Vous allez envoyer un message à #{pluralize(@dossiers_count, 'personne')} dans les groupes instructeurs : #{@groupe_instructeurs.join(', ')}.
|
||||
= render partial: 'shared/dossiers/messages/form', locals: { commentaire: @commentaire, form_url: create_multiple_commentaire_instructeur_procedure_path(@procedure) }
|
||||
- if @email_usagers_dossiers.present?
|
||||
%p.notice.mb-2.mt-4 Vous allez envoyer un message à #{pluralize(@dossiers_count, 'personne')} dans les groupes instructeurs : #{@groupe_instructeurs.join(', ')}.
|
||||
= render partial: 'shared/dossiers/messages/form', locals: { commentaire: @commentaire, form_url: create_multiple_commentaire_instructeur_procedure_path(@procedure) }
|
||||
- else
|
||||
.page-title.center
|
||||
%h2 Il n'y a aucun dossier en brouillon dans vos groupes instructeurs
|
||||
|
||||
|
|
|
@ -137,12 +137,15 @@ describe NewAdministrateur::GroupeInstructeursController, type: :controller do
|
|||
|
||||
describe '#reaffecter' do
|
||||
let!(:gi_1_2) { procedure.groupe_instructeurs.create(label: 'groupe instructeur 2') }
|
||||
let!(:gi_1_3) { procedure.groupe_instructeurs.create(label: 'groupe instructeur 3') }
|
||||
let!(:dossier12) { create(:dossier, :en_construction, :with_individual, procedure: procedure, groupe_instructeur: gi_1_1) }
|
||||
let!(:dossier_discarded) do
|
||||
dossier = create(:dossier, :en_construction, :with_individual, procedure: procedure, groupe_instructeur: gi_1_1)
|
||||
dossier.discard!
|
||||
dossier
|
||||
end
|
||||
let!(:instructeur) { create(:instructeur) }
|
||||
let!(:bulk_message) { BulkMessage.create(dossier_count: 2, dossier_state: "brouillon", body: "hello", sent_at: Time.zone.now, groupe_instructeurs: [gi_1_1, gi_1_3], instructeur: instructeur) }
|
||||
|
||||
describe 'when the new group is a group of the procedure' do
|
||||
before do
|
||||
|
@ -153,6 +156,7 @@ describe NewAdministrateur::GroupeInstructeursController, type: :controller do
|
|||
target_group: gi_1_2.id
|
||||
}
|
||||
dossier12.reload
|
||||
bulk_message.reload
|
||||
end
|
||||
|
||||
it { expect(response).to redirect_to(admin_procedure_groupe_instructeurs_path(procedure)) }
|
||||
|
@ -160,6 +164,7 @@ describe NewAdministrateur::GroupeInstructeursController, type: :controller do
|
|||
it { expect(gi_1_2.dossiers.with_discarded.count).to be(2) }
|
||||
it { expect(gi_1_2.dossiers.last.id).to be(dossier12.id) }
|
||||
it { expect(dossier12.groupe_instructeur.id).to be(gi_1_2.id) }
|
||||
it { expect(bulk_message.groupe_instructeurs).to eq([gi_1_2, gi_1_3]) }
|
||||
end
|
||||
|
||||
describe 'when the target group is not a possible group' do
|
||||
|
@ -174,9 +179,11 @@ describe NewAdministrateur::GroupeInstructeursController, type: :controller do
|
|||
}
|
||||
before do
|
||||
dossier12.reload
|
||||
bulk_message.reload
|
||||
end
|
||||
|
||||
it { expect { subject }.to raise_error(ActiveRecord::RecordNotFound) }
|
||||
it { expect(bulk_message.groupe_instructeurs).to eq([gi_1_1, gi_1_3]) }
|
||||
end
|
||||
end
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue