# frozen_string_literal: true module Gestionnaires class GroupeGestionnairesController < GestionnaireController before_action :retrieve_groupe_gestionnaire, only: [:show, :edit, :update, :destroy, :tree_structure] def index @groupe_gestionnaires = groupe_gestionnaires end def show @unread_commentaires = current_gestionnaire.unread_commentaires?(@groupe_gestionnaire) end def edit end def update if @groupe_gestionnaire.update(groupe_gestionnaire_params) flash.notice = "Le groupe a bien été modifié" redirect_to gestionnaire_groupe_gestionnaire_path(@groupe_gestionnaire) else flash.now.alert = "Le groupe contient des erreurs et n'a pas pu être enregistré. Veuiller les corriger" render :edit end end def destroy if !@groupe_gestionnaire.can_be_deleted?(current_gestionnaire) flash[:alert] = "Impossible de supprimer ce groupe.." else @groupe_gestionnaire.destroy flash[:notice] = "Le groupe #{@groupe_gestionnaire.id} est supprimé" end redirect_to gestionnaire_groupe_gestionnaires_path end def tree_structure @tree_structure = @groupe_gestionnaire.subtree.arrange end private def groupe_gestionnaires groupe_gestionnaire_ids = current_gestionnaire.groupe_gestionnaire_ids GroupeGestionnaire.where(id: groupe_gestionnaire_ids.compact.uniq) end def groupe_gestionnaire_params params.require(:groupe_gestionnaire).permit(:name) end end end