diff --git a/app/controllers/new_administrateur/groupe_instructeurs_controller.rb b/app/controllers/new_administrateur/groupe_instructeurs_controller.rb index fe1adc93a..8e79ed23f 100644 --- a/app/controllers/new_administrateur/groupe_instructeurs_controller.rb +++ b/app/controllers/new_administrateur/groupe_instructeurs_controller.rb @@ -48,6 +48,18 @@ module NewAdministrateur end end + def destroy + if procedure.groupe_instructeurs.one? + flash[:alert] = "Suppression impossible : il doit y avoir au moins un groupe instructeur sur chaque procédure" + elsif groupe_instructeur == procedure.defaut_groupe_instructeur + flash[:alert] = "Impossible de supprimer le groupe par défaut" + else + flash[:notice] = "le groupe « #{groupe_instructeur.label} » a été supprimé." + groupe_instructeur.destroy + end + redirect_to procedure_groupe_instructeurs_path(procedure) + end + def add_instructeur emails = params['emails'].presence || [] emails = emails.map(&:strip).map(&:downcase) diff --git a/app/views/new_administrateur/groupe_instructeurs/index.html.haml b/app/views/new_administrateur/groupe_instructeurs/index.html.haml index 28ce3b0c1..e9a036675 100644 --- a/app/views/new_administrateur/groupe_instructeurs/index.html.haml +++ b/app/views/new_administrateur/groupe_instructeurs/index.html.haml @@ -34,5 +34,14 @@ %tr %td= group.label %td.actions= link_to "voir", procedure_groupe_instructeur_path(@procedure, group) + - if @groupes_instructeurs.count > 1 + - if group.dossiers.count == 0 + %td.actions + - if group == @procedure.defaut_groupe_instructeur + Groupe par défaut − ne peut être supprimé + - else + = link_to procedure_groupe_instructeur_path(@procedure, group), { method: :delete, class: 'button', data: { confirm: "Êtes-vous sûr de vouloir supprimer le groupe « #{group.label} » ?" }} do + %span.icon.delete + supprimer ce groupe = paginate @groupes_instructeurs diff --git a/config/routes.rb b/config/routes.rb index 8c7994777..f3a03e629 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -356,7 +356,7 @@ Rails.application.routes.draw do get 'annotations' end - resources :groupe_instructeurs, only: [:index, :show, :create, :update] do + resources :groupe_instructeurs, only: [:index, :show, :create, :update, :destroy] do member do post 'add_instructeur' delete 'remove_instructeur'