demarches-normaliennes/app/components/dossiers/export_dropdown_component.rb
Colin Darie d4198869fb
chore(exports): dropdown menu re-uses the same pending export or create a fresh one
Pour permettre d'avoir des données fraiches dans un export tout
en conservant l'historique des exports,
la demande d'export depuis le menu créé toujours un nouvel export sauf:
- si un autre export identique est déjà en préparation
- si un autre export identique s'est terminé il y a moins de 5 minutes

Co-Authored-By: Lisa Durand <lisa.c.durand@gmail.com>
2023-09-28 15:23:31 +02:00

30 lines
814 B
Ruby

class Dossiers::ExportDropdownComponent < ApplicationComponent
include ApplicationHelper
def initialize(procedure:, statut: nil, count: nil, class_btn: nil, export_url: nil)
@procedure = procedure
@statut = statut
@count = count
@class_btn = class_btn
@export_url = export_url
end
def formats
if @statut
Export::FORMATS.filter(&method(:allowed_format?))
else
Export::FORMATS_WITH_TIME_SPAN
end.map { _1[:format] }
end
def allowed_format?(item)
item.fetch(:format) != :json || @procedure.active_revision.carte?
end
def download_export_path(export_format:, no_progress_notification: nil)
@export_url.call(@procedure,
export_format: export_format,
statut: @statut,
no_progress_notification: no_progress_notification)
end
end