2024-04-29 00:17:15 +02:00
# frozen_string_literal: true
2021-04-29 17:29:47 +02:00
module Instructeurs
class ArchivesController < InstructeurController
2022-07-21 15:18:07 +02:00
before_action :retrieve_procedure
before_action :ensure_not_super_admin!
2022-06-23 13:51:58 +02:00
helper_method :create_archive_url
2021-04-29 17:29:47 +02:00
def index
2022-06-23 13:51:58 +02:00
@average_dossier_weight = @procedure . average_dossier_weight
2022-10-31 17:02:48 +01:00
@count_dossiers_termines_by_month = @procedure . dossiers . processed_by_month ( groupe_instructeurs ) . count
2022-06-23 13:51:58 +02:00
@archives = Archive . for_groupe_instructeur ( groupe_instructeurs ) . to_a
2021-04-29 17:29:47 +02:00
end
def create
type = params [ :type ]
2024-02-07 17:19:50 +01:00
archive = Archive . find_or_create_archive ( type , year_month , groupe_instructeurs , current_instructeur )
2021-04-29 17:29:47 +02:00
if archive . pending?
2022-06-23 13:51:58 +02:00
ArchiveCreationJob . perform_later ( @procedure , archive , current_instructeur )
2023-01-10 12:00:05 +01:00
flash [ :notice ] = " Votre demande a été prise en compte. Selon le nombre de dossiers, cela peut prendre de quelques minutes à plusieurs heures. Vous recevrez un courriel lorsque le fichier sera disponible. "
2021-04-29 17:29:47 +02:00
else
flash [ :notice ] = " Cette archive a déjà été générée. "
end
2022-06-23 13:51:58 +02:00
redirect_to instructeur_archives_path ( @procedure )
2021-04-29 17:29:47 +02:00
end
private
2022-06-23 13:51:58 +02:00
def year_month
Date . strptime ( params [ :year_month ] , '%Y-%m' ) if params [ :year_month ] . present?
2021-04-29 17:29:47 +02:00
end
2022-06-23 13:51:58 +02:00
def create_archive_url ( procedure , date )
2022-08-23 14:30:51 +02:00
instructeur_archives_path ( procedure , type : 'monthly' , year_month : date . strftime ( '%Y-%m' ) )
2021-05-26 18:17:07 +02:00
end
def groupe_instructeurs
current_instructeur
. groupe_instructeurs
2022-06-23 13:51:58 +02:00
. where ( procedure_id : params [ :procedure_id ] )
2021-05-26 18:17:07 +02:00
end
2022-06-23 13:51:58 +02:00
def retrieve_procedure
@procedure = current_instructeur . procedures . find ( params [ :procedure_id ] )
2021-04-29 17:29:47 +02:00
end
end
end