destroy all groups but defaut

This commit is contained in:
Eric Leroy-Terquem 2023-04-27 10:11:27 +02:00 committed by LeSim
parent 526f70f9c0
commit 692010fa32
2 changed files with 31 additions and 0 deletions

View file

@ -74,6 +74,19 @@ module Administrateurs
end
end
def destroy_all_groups_but_defaut
reaffecter_all_dossiers_to_defaut_groupe
procedure.groupe_instructeurs_but_defaut.each(&:destroy!)
procedure.update!(routing_enabled: false, instructeurs_self_management_enabled: false)
procedure.defaut_groupe_instructeur.update!(
routing_rule: nil,
label: GroupeInstructeur::DEFAUT_LABEL,
closed: false
)
flash.notice = 'Tous les groupes instructeurs ont été supprimés'
redirect_to admin_procedure_groupe_instructeurs_path(procedure)
end
def show
@procedure = procedure
@groupe_instructeur = groupe_instructeur
@ -149,6 +162,12 @@ module Administrateurs
@groupe_instructeur.destroy!
if procedure.groupe_instructeurs.active.one?
procedure.update!(routing_enabled: false)
procedure.update!(instructeurs_self_management_enabled: false)
procedure.defaut_groupe_instructeur.update!(
routing_rule: nil,
label: GroupeInstructeur::DEFAUT_LABEL,
closed: false
)
routing_notice = " et le routage a été désactivé"
end
flash[:notice] = "le groupe « #{@groupe_instructeur.label} » a été supprimé#{routing_notice}."
@ -184,6 +203,14 @@ module Administrateurs
redirect_to admin_procedure_groupe_instructeurs_path(procedure)
end
def reaffecter_all_dossiers_to_defaut_groupe
procedure.groupe_instructeurs_but_defaut.each do |gi|
gi.dossiers.find_each do |dossier|
dossier.assign_to_groupe_instructeur(procedure.defaut_groupe_instructeur, current_administrateur)
end
end
end
def add_instructeur
emails = params['emails'].presence || [].to_json
emails = JSON.parse(emails).map { EmailSanitizableConcern::EmailSanitizer.sanitize(_1) }

View file

@ -738,6 +738,10 @@ class Procedure < ApplicationRecord
end
end
def groupe_instructeurs_but_defaut
groupe_instructeurs - [defaut_groupe_instructeur]
end
def can_be_deleted_by_administrateur?
brouillon? || dossiers.state_en_instruction.empty?
end