Groupe instructeur update
This commit is contained in:
parent
9a6336f508
commit
3dd3af8482
4 changed files with 59 additions and 6 deletions
|
@ -11,11 +11,7 @@ module NewAdministrateur
|
||||||
def show
|
def show
|
||||||
@procedure = procedure
|
@procedure = procedure
|
||||||
@groupe_instructeur = groupe_instructeur
|
@groupe_instructeur = groupe_instructeur
|
||||||
@instructeurs = groupe_instructeur
|
@instructeurs = paginated_instructeurs
|
||||||
.instructeurs
|
|
||||||
.page(params[:page])
|
|
||||||
.per(ITEMS_PER_PAGE)
|
|
||||||
.order(:email)
|
|
||||||
end
|
end
|
||||||
|
|
||||||
def create
|
def create
|
||||||
|
@ -35,6 +31,21 @@ module NewAdministrateur
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def update
|
||||||
|
@groupe_instructeur = groupe_instructeur
|
||||||
|
|
||||||
|
if @groupe_instructeur.update(label: label)
|
||||||
|
redirect_to procedure_groupe_instructeur_path(procedure, groupe_instructeur),
|
||||||
|
notice: "Le nom est à présent « #{label} »."
|
||||||
|
else
|
||||||
|
@procedure = procedure
|
||||||
|
@instructeurs = paginated_instructeurs
|
||||||
|
|
||||||
|
flash[:alert] = "le nom « #{label} » est déjà pris par un autre groupe."
|
||||||
|
render :show
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
private
|
private
|
||||||
|
|
||||||
def procedure
|
def procedure
|
||||||
|
@ -59,5 +70,13 @@ module NewAdministrateur
|
||||||
.per(ITEMS_PER_PAGE)
|
.per(ITEMS_PER_PAGE)
|
||||||
.order(:label)
|
.order(:label)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def paginated_instructeurs
|
||||||
|
groupe_instructeur
|
||||||
|
.instructeurs
|
||||||
|
.page(params[:page])
|
||||||
|
.per(ITEMS_PER_PAGE)
|
||||||
|
.order(:email)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -9,6 +9,15 @@
|
||||||
.flex.baseline-start
|
.flex.baseline-start
|
||||||
%h1 Groupe « #{@groupe_instructeur.label} »
|
%h1 Groupe « #{@groupe_instructeur.label} »
|
||||||
|
|
||||||
|
.card.mt-2
|
||||||
|
= form_for @groupe_instructeur,
|
||||||
|
url: procedure_groupe_instructeur_path(@procedure, @groupe_instructeur),
|
||||||
|
html: { class: 'form' } do |f|
|
||||||
|
|
||||||
|
= f.label :label, 'Nom du groupe'
|
||||||
|
= f.text_field :label, placeholder: 'Ville de Bordeaux', required: true
|
||||||
|
= f.submit 'Renommer', class: 'button primary send'
|
||||||
|
|
||||||
.card
|
.card
|
||||||
.card-title Gestion des instructeurs
|
.card-title Gestion des instructeurs
|
||||||
|
|
||||||
|
|
|
@ -350,7 +350,7 @@ Rails.application.routes.draw do
|
||||||
get 'annotations'
|
get 'annotations'
|
||||||
end
|
end
|
||||||
|
|
||||||
resources :groupe_instructeurs, only: [:index, :show, :create]
|
resources :groupe_instructeurs, only: [:index, :show, :create, :update]
|
||||||
|
|
||||||
resources :administrateurs, controller: 'procedure_administrateurs', only: [:index, :create, :destroy]
|
resources :administrateurs, controller: 'procedure_administrateurs', only: [:index, :create, :destroy]
|
||||||
|
|
||||||
|
|
|
@ -58,4 +58,29 @@ describe NewAdministrateur::GroupeInstructeursController, type: :controller do
|
||||||
it { expect(flash.alert).to be_present }
|
it { expect(flash.alert).to be_present }
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
describe '#update' do
|
||||||
|
let(:new_name) { 'nouveau nom du groupe' }
|
||||||
|
|
||||||
|
before do
|
||||||
|
patch :update,
|
||||||
|
params: {
|
||||||
|
procedure_id: procedure.id,
|
||||||
|
id: gi_1_1.id,
|
||||||
|
groupe_instructeur: { label: new_name }
|
||||||
|
}
|
||||||
|
end
|
||||||
|
|
||||||
|
it { expect(gi_1_1.reload.label).to eq(new_name) }
|
||||||
|
it { expect(response).to redirect_to(procedure_groupe_instructeur_path(procedure, gi_1_1)) }
|
||||||
|
it { expect(flash.notice).to be_present }
|
||||||
|
|
||||||
|
context 'when the name is already taken' do
|
||||||
|
let!(:gi_1_2) { procedure.groupe_instructeurs.create(label: 'groupe instructeur 2') }
|
||||||
|
let(:new_name) { gi_1_2.label }
|
||||||
|
|
||||||
|
it { expect(gi_1_1.reload.label).not_to eq(new_name) }
|
||||||
|
it { expect(flash.alert).to be_present }
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in a new issue