fix: admin is redirected to admin groupe instructeur page
after creating or editing groupe instructeur service
This commit is contained in:
parent
c5d02cdd6a
commit
5b9fbf40ed
4 changed files with 32 additions and 7 deletions
|
@ -9,7 +9,7 @@ module Instructeurs
|
||||||
assign_procedure_and_groupe_instructeur
|
assign_procedure_and_groupe_instructeur
|
||||||
@contact_information = @groupe_instructeur.build_contact_information(contact_information_params)
|
@contact_information = @groupe_instructeur.build_contact_information(contact_information_params)
|
||||||
if @contact_information.save
|
if @contact_information.save
|
||||||
redirect_to instructeur_groupe_path(@groupe_instructeur, procedure_id: @procedure.id), notice: "Les informations de contact ont bien été ajoutées"
|
redirect_to_groupe_instructeur("Les informations de contact ont bien été ajoutées")
|
||||||
else
|
else
|
||||||
flash[:alert] = @contact_information.errors.full_messages
|
flash[:alert] = @contact_information.errors.full_messages
|
||||||
render :new
|
render :new
|
||||||
|
@ -25,7 +25,7 @@ module Instructeurs
|
||||||
assign_procedure_and_groupe_instructeur
|
assign_procedure_and_groupe_instructeur
|
||||||
@contact_information = @groupe_instructeur.contact_information
|
@contact_information = @groupe_instructeur.contact_information
|
||||||
if @contact_information.update(contact_information_params)
|
if @contact_information.update(contact_information_params)
|
||||||
redirect_to instructeur_groupe_path(@groupe_instructeur, procedure_id: @procedure.id), notice: "Les informations de contact ont bien été modifiées"
|
redirect_to_groupe_instructeur("Les informations de contact ont bien été modifiées")
|
||||||
else
|
else
|
||||||
flash[:alert] = @contact_information.errors.full_messages
|
flash[:alert] = @contact_information.errors.full_messages
|
||||||
render :edit
|
render :edit
|
||||||
|
@ -35,11 +35,19 @@ module Instructeurs
|
||||||
def destroy
|
def destroy
|
||||||
assign_procedure_and_groupe_instructeur
|
assign_procedure_and_groupe_instructeur
|
||||||
@groupe_instructeur.contact_information.destroy
|
@groupe_instructeur.contact_information.destroy
|
||||||
redirect_to instructeur_groupe_path(@groupe_instructeur, procedure_id: @procedure.id), notice: "Les informations de contact ont bien été supprimées"
|
redirect_to_groupe_instructeur("Les informations de contact ont bien été supprimées")
|
||||||
end
|
end
|
||||||
|
|
||||||
private
|
private
|
||||||
|
|
||||||
|
def redirect_to_groupe_instructeur(notice)
|
||||||
|
if params[:from_admin] == "true"
|
||||||
|
redirect_to admin_procedure_groupe_instructeur_path(@procedure, @groupe_instructeur), notice: notice
|
||||||
|
else
|
||||||
|
redirect_to instructeur_groupe_path(@procedure, @groupe_instructeur), notice: notice
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
def assign_procedure_and_groupe_instructeur
|
def assign_procedure_and_groupe_instructeur
|
||||||
@procedure = current_instructeur.procedures.find params[:procedure_id]
|
@procedure = current_instructeur.procedures.find params[:procedure_id]
|
||||||
@groupe_instructeur = current_instructeur.groupe_instructeurs.find params[:groupe_id]
|
@groupe_instructeur = current_instructeur.groupe_instructeurs.find params[:groupe_id]
|
||||||
|
|
|
@ -5,13 +5,13 @@
|
||||||
= "Le groupe #{groupe_instructeur.label} n'a pas d'informations de contact. Les informations de contact affichées à l'usager seront celles du service de la procédure"
|
= "Le groupe #{groupe_instructeur.label} n'a pas d'informations de contact. Les informations de contact affichées à l'usager seront celles du service de la procédure"
|
||||||
%p.mt-3
|
%p.mt-3
|
||||||
- if groupe_instructeur.instructeurs.include?(current_administrateur.user.instructeur)
|
- if groupe_instructeur.instructeurs.include?(current_administrateur.user.instructeur)
|
||||||
= link_to "+ Ajouter des informations de contact", new_instructeur_groupe_contact_information_path(procedure_id: procedure.id, groupe_id: groupe_instructeur.id), class: "fr-btn"
|
= link_to "+ Ajouter des informations de contact", new_instructeur_groupe_contact_information_path(procedure_id: procedure.id, groupe_id: groupe_instructeur.id, from_admin: true), class: "fr-btn"
|
||||||
- else
|
- else
|
||||||
Si vous souhaitez créer un service pour ce groupe, vous devez faire partie du groupe instructeur
|
Si vous souhaitez créer un service pour ce groupe, vous devez faire partie du groupe instructeur
|
||||||
- else
|
- else
|
||||||
%p.mt-3
|
%p.mt-3
|
||||||
- if groupe_instructeur.instructeurs.include?(current_administrateur.user.instructeur)
|
- if groupe_instructeur.instructeurs.include?(current_administrateur.user.instructeur)
|
||||||
= link_to "Modifier les informations de contact", edit_instructeur_groupe_contact_information_path(procedure_id: procedure.id, groupe_id: groupe_instructeur.id), class: "fr-btn"
|
= link_to "Modifier les informations de contact", edit_instructeur_groupe_contact_information_path(procedure_id: procedure.id, groupe_id: groupe_instructeur.id, from_admin: true), class: "fr-btn"
|
||||||
- else
|
- else
|
||||||
Si vous souhaitez modifier ce service, vous devez faire partie du groupe instructeur
|
Si vous souhaitez modifier ce service, vous devez faire partie du groupe instructeur
|
||||||
%p.mt-3= service.nom
|
%p.mt-3= service.nom
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
= form_with url: instructeur_groupe_contact_information_path, model: @contact_information, local: true do |f|
|
= form_with url: instructeur_groupe_contact_information_path, model: @contact_information, local: true do |f|
|
||||||
|
= hidden_field_tag :from_admin, params[:from_admin]
|
||||||
|
|
||||||
= render Dsfr::CalloutComponent.new(title: "Informations de contact") do |c|
|
= render Dsfr::CalloutComponent.new(title: "Informations de contact") do |c|
|
||||||
- c.body do
|
- c.body do
|
||||||
|
|
|
@ -3,6 +3,7 @@ describe Instructeurs::ContactInformationsController, type: :controller do
|
||||||
let(:procedure) { create(:procedure) }
|
let(:procedure) { create(:procedure) }
|
||||||
let(:assign_to) { create(:assign_to, instructeur: instructeur, groupe_instructeur: build(:groupe_instructeur, procedure: procedure)) }
|
let(:assign_to) { create(:assign_to, instructeur: instructeur, groupe_instructeur: build(:groupe_instructeur, procedure: procedure)) }
|
||||||
let(:gi) { assign_to.groupe_instructeur }
|
let(:gi) { assign_to.groupe_instructeur }
|
||||||
|
let(:from_admin) { nil }
|
||||||
|
|
||||||
before do
|
before do
|
||||||
sign_in(instructeur.user)
|
sign_in(instructeur.user)
|
||||||
|
@ -20,7 +21,8 @@ describe Instructeurs::ContactInformationsController, type: :controller do
|
||||||
adresse: 'adresse'
|
adresse: 'adresse'
|
||||||
},
|
},
|
||||||
procedure_id: procedure.id,
|
procedure_id: procedure.id,
|
||||||
groupe_id: gi.id
|
groupe_id: gi.id,
|
||||||
|
from_admin: from_admin
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -34,6 +36,14 @@ describe Instructeurs::ContactInformationsController, type: :controller do
|
||||||
expect(ContactInformation.last.horaires).to eq('horaires')
|
expect(ContactInformation.last.horaires).to eq('horaires')
|
||||||
expect(ContactInformation.last.adresse).to eq('adresse')
|
expect(ContactInformation.last.adresse).to eq('adresse')
|
||||||
end
|
end
|
||||||
|
|
||||||
|
context 'from admin' do
|
||||||
|
let(:from_admin) { true }
|
||||||
|
it do
|
||||||
|
post :create, params: params
|
||||||
|
expect(response).to redirect_to(admin_procedure_groupe_instructeur_path(gi, procedure_id: procedure.id))
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'when submitting an invalid contact_information' do
|
context 'when submitting an invalid contact_information' do
|
||||||
|
@ -69,7 +79,8 @@ describe Instructeurs::ContactInformationsController, type: :controller do
|
||||||
id: contact_information.id,
|
id: contact_information.id,
|
||||||
contact_information: contact_information_params,
|
contact_information: contact_information_params,
|
||||||
procedure_id: procedure.id,
|
procedure_id: procedure.id,
|
||||||
groupe_id: gi.id
|
groupe_id: gi.id,
|
||||||
|
from_admin: from_admin
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -84,6 +95,11 @@ describe Instructeurs::ContactInformationsController, type: :controller do
|
||||||
it { expect(response).to redirect_to(instructeur_groupe_path(gi, procedure_id: procedure.id)) }
|
it { expect(response).to redirect_to(instructeur_groupe_path(gi, procedure_id: procedure.id)) }
|
||||||
end
|
end
|
||||||
|
|
||||||
|
context 'when updating a contact_information as an admin' do
|
||||||
|
let(:from_admin) { true }
|
||||||
|
it { expect(response).to redirect_to(admin_procedure_groupe_instructeur_path(gi, procedure_id: procedure.id)) }
|
||||||
|
end
|
||||||
|
|
||||||
context 'when updating a contact_information with invalid data' do
|
context 'when updating a contact_information with invalid data' do
|
||||||
let(:contact_information_params) { { nom: '' } }
|
let(:contact_information_params) { { nom: '' } }
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue