2021-04-29 17:29:47 +02:00
module Instructeurs
class ArchivesController < InstructeurController
before_action :ensure_procedure_enabled
def index
@procedure = procedure
2021-05-26 16:19:20 +02:00
@average_dossier_weight = procedure . average_dossier_weight
2021-05-26 18:06:13 +02:00
2021-05-26 18:17:07 +02:00
@count_dossiers_termines_by_month = Traitement . count_dossiers_termines_by_month ( groupe_instructeurs )
2021-05-26 18:06:13 +02:00
@archives = Archive
2021-05-26 18:17:07 +02:00
. for_groupe_instructeur ( groupe_instructeurs )
2021-05-26 18:06:13 +02:00
. to_a
2021-04-29 17:29:47 +02:00
end
def create
type = params [ :type ]
month = Date . strptime ( params [ :month ] , '%Y-%m' ) if params [ :month ] . present?
archive = ProcedureArchiveService . new ( procedure ) . create_pending_archive ( current_instructeur , type , month )
if archive . pending?
ArchiveCreationJob . perform_later ( procedure , archive , current_instructeur )
flash [ :notice ] = " Votre demande a été prise en compte. Selon le nombre de dossiers, cela peut prendre quelques minutes. Vous recevrez un courriel lorsque le fichier sera disponible. "
else
flash [ :notice ] = " Cette archive a déjà été générée. "
end
redirect_to instructeur_archives_path ( procedure )
end
private
def ensure_procedure_enabled
if ! procedure . feature_enabled? ( :archive_zip_globale ) || procedure . brouillon?
2021-05-26 15:16:30 +02:00
flash [ :alert ] = " L'accès aux archives n’ est pas disponible pour cette démarche, merci d’ en faire la demande à l'équipe de démarches simplifiees "
2021-04-29 17:29:47 +02:00
return redirect_to instructeur_procedure_path ( procedure )
end
end
2021-05-26 18:17:07 +02:00
def procedure_id
params [ :procedure_id ]
end
def groupe_instructeurs
current_instructeur
. groupe_instructeurs
. where ( procedure_id : procedure_id )
end
2021-04-29 17:29:47 +02:00
def procedure
current_instructeur
. procedures
2021-05-26 18:17:07 +02:00
. find ( procedure_id )
2021-04-29 17:29:47 +02:00
end
end
end