Groupe instructeur create
This commit is contained in:
parent
733e83cc54
commit
9a6336f508
4 changed files with 64 additions and 6 deletions
|
@ -5,11 +5,7 @@ module NewAdministrateur
|
||||||
def index
|
def index
|
||||||
@procedure = procedure
|
@procedure = procedure
|
||||||
|
|
||||||
@groupes_instructeurs = procedure
|
@groupes_instructeurs = paginated_groupe_instructeurs
|
||||||
.groupe_instructeurs
|
|
||||||
.page(params[:page])
|
|
||||||
.per(ITEMS_PER_PAGE)
|
|
||||||
.order(:label)
|
|
||||||
end
|
end
|
||||||
|
|
||||||
def show
|
def show
|
||||||
|
@ -22,6 +18,23 @@ module NewAdministrateur
|
||||||
.order(:email)
|
.order(:email)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def create
|
||||||
|
@groupe_instructeur = procedure
|
||||||
|
.groupe_instructeurs
|
||||||
|
.new(label: label, instructeurs: [current_administrateur.instructeur])
|
||||||
|
|
||||||
|
if @groupe_instructeur.save
|
||||||
|
redirect_to procedure_groupe_instructeur_path(procedure, @groupe_instructeur),
|
||||||
|
notice: "Le groupe d’instructeurs « #{label} » a été créé."
|
||||||
|
else
|
||||||
|
@procedure = procedure
|
||||||
|
@groupes_instructeurs = paginated_groupe_instructeurs
|
||||||
|
|
||||||
|
flash[:alert] = "le nom « #{label} » est déjà pris par un autre groupe."
|
||||||
|
render :index
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
private
|
private
|
||||||
|
|
||||||
def procedure
|
def procedure
|
||||||
|
@ -34,5 +47,17 @@ module NewAdministrateur
|
||||||
def groupe_instructeur
|
def groupe_instructeur
|
||||||
procedure.groupe_instructeurs.find(params[:id])
|
procedure.groupe_instructeurs.find(params[:id])
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def label
|
||||||
|
params[:groupe_instructeur][:label]
|
||||||
|
end
|
||||||
|
|
||||||
|
def paginated_groupe_instructeurs
|
||||||
|
procedure
|
||||||
|
.groupe_instructeurs
|
||||||
|
.page(params[:page])
|
||||||
|
.per(ITEMS_PER_PAGE)
|
||||||
|
.order(:label)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -7,6 +7,13 @@
|
||||||
.card
|
.card
|
||||||
.card-title Gestion des Groupes
|
.card-title Gestion des Groupes
|
||||||
|
|
||||||
|
= form_for :groupe_instructeur, html: { class: 'form' } do |f|
|
||||||
|
= f.label :label do
|
||||||
|
Ajouter un groupe
|
||||||
|
%span.notice Ce groupe sera un choix de la liste « #{@procedure.routing_criteria_name} » .
|
||||||
|
= f.text_field :label, placeholder: 'Ville de Bordeaux', required: true
|
||||||
|
= f.submit 'Ajouter le groupe', class: 'button primary send'
|
||||||
|
|
||||||
%table.table.mt-2
|
%table.table.mt-2
|
||||||
%thead
|
%thead
|
||||||
%tr
|
%tr
|
||||||
|
|
|
@ -350,7 +350,7 @@ Rails.application.routes.draw do
|
||||||
get 'annotations'
|
get 'annotations'
|
||||||
end
|
end
|
||||||
|
|
||||||
resources :groupe_instructeurs, only: [:index, :show]
|
resources :groupe_instructeurs, only: [:index, :show, :create]
|
||||||
|
|
||||||
resources :administrateurs, controller: 'procedure_administrateurs', only: [:index, :create, :destroy]
|
resources :administrateurs, controller: 'procedure_administrateurs', only: [:index, :create, :destroy]
|
||||||
|
|
||||||
|
|
|
@ -32,4 +32,30 @@ describe NewAdministrateur::GroupeInstructeursController, type: :controller do
|
||||||
it { expect(response).to have_http_status(:ok) }
|
it { expect(response).to have_http_status(:ok) }
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
describe '#create' do
|
||||||
|
before do
|
||||||
|
post :create,
|
||||||
|
params: {
|
||||||
|
procedure_id: procedure.id,
|
||||||
|
groupe_instructeur: { label: label }
|
||||||
|
}
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'with a valid name' do
|
||||||
|
let(:label) { "nouveau_groupe" }
|
||||||
|
|
||||||
|
it { expect(flash.notice).to be_present }
|
||||||
|
it { expect(response).to redirect_to(procedure_groupe_instructeur_path(procedure, procedure.groupe_instructeurs.last)) }
|
||||||
|
it { expect(procedure.groupe_instructeurs.count).to eq(2) }
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'with an invalid group name' do
|
||||||
|
let(:label) { gi_1_1.label }
|
||||||
|
|
||||||
|
it { expect(response).to render_template(:index) }
|
||||||
|
it { expect(procedure.groupe_instructeurs.count).to eq(1) }
|
||||||
|
it { expect(flash.alert).to be_present }
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in a new issue