module Instructeurs class BatchOperationsController < ApplicationController before_action :set_procedure before_action :ensure_ownership! def create dossier_ids = batch_operation_params[:dossier_ids].join(',').split(',').uniq batch = BatchOperation.safe_create!(batch_operation_params.merge(dossier_ids: dossier_ids)) flash[:alert] = "Le traitement de masse n'a pas été lancé. Vérifiez que l'action demandée est possible pour les dossiers sélectionnés" if batch.blank? redirect_back(fallback_location: instructeur_procedure_url(@procedure.id)) end private def batch_operation_params params.require(:batch_operation) .permit(:operation, :motivation, :justificatif_motivation, dossier_ids: []) .merge(instructeur: current_instructeur) end def set_procedure @procedure = Procedure.find(params[:procedure_id]) end def ensure_ownership! if !current_instructeur.procedures.exists?(@procedure.id) flash[:alert] = "Vous n’avez pas accès à cette démarche" redirect_to root_path end end end end