2024-04-29 00:17:15 +02:00
# frozen_string_literal: true
2022-06-23 13:51:58 +02:00
module Administrateurs
class ArchivesController < AdministrateurController
2022-07-21 13:44:21 +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
def index
2023-09-21 13:59:14 +02:00
@exports = Export . ante_chronological . by_key ( all_groupe_instructeurs . map ( & :id ) , nil )
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 ( all_groupe_instructeurs ) . count
2022-06-23 13:51:58 +02:00
@archives = Archive . for_groupe_instructeur ( all_groupe_instructeurs ) . to_a
end
def create
type = params [ :type ]
2024-02-07 17:19:50 +01:00
archive = Archive . find_or_create_archive ( type , year_month , all_groupe_instructeurs , current_administrateur )
2022-06-23 13:51:58 +02:00
if archive . pending?
ArchiveCreationJob . perform_later ( @procedure , archive , current_administrateur )
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. "
2022-06-23 13:51:58 +02:00
else
flash [ :notice ] = " Cette archive a déjà été générée. "
end
redirect_to admin_procedure_archives_path ( @procedure )
end
private
def year_month
Date . strptime ( params [ :year_month ] , '%Y-%m' ) if params [ :year_month ] . present?
end
def all_groupe_instructeurs
@procedure . groupe_instructeurs
end
def create_archive_url ( procedure , date )
admin_procedure_archives_path ( procedure , type : 'monthly' , year_month : date . strftime ( '%Y-%m' ) )
end
end
end