From 0dfc01569079a8318bc9a4b72360debe649a7955 Mon Sep 17 00:00:00 2001 From: Paul Chavard Date: Tue, 17 May 2022 17:54:41 +0200 Subject: [PATCH] feat(dossiers): bring back export all dossiers --- app/components/dossiers/export_component.rb | 2 +- .../dossiers/export_component/export_component.en.yml | 1 + .../dossiers/export_component/export_component.fr.yml | 1 + .../dossiers/export_component/export_component.html.haml | 9 ++++----- app/models/export.rb | 4 +--- .../instructeurs/procedures/deleted_dossiers.html.haml | 2 ++ .../procedures/download_export.turbo_stream.haml | 8 ++++++-- app/views/instructeurs/procedures/show.html.haml | 2 ++ 8 files changed, 18 insertions(+), 11 deletions(-) diff --git a/app/components/dossiers/export_component.rb b/app/components/dossiers/export_component.rb index 96e4f5d7a..6b8084ca0 100644 --- a/app/components/dossiers/export_component.rb +++ b/app/components/dossiers/export_component.rb @@ -1,5 +1,5 @@ class Dossiers::ExportComponent < ApplicationComponent - def initialize(procedure:, exports:, statut:, count:) + def initialize(procedure:, exports:, statut: nil, count: nil) @procedure = procedure @exports = exports @statut = statut diff --git a/app/components/dossiers/export_component/export_component.en.yml b/app/components/dossiers/export_component/export_component.en.yml index c548a2b08..b92cd5dd6 100644 --- a/app/components/dossiers/export_component/export_component.en.yml +++ b/app/components/dossiers/export_component/export_component.en.yml @@ -7,6 +7,7 @@ en: everything_short: Ask an export in format%{export_format} everything_pending_html: Ask an export in format %{export_format} is being generated
(ask %{export_time} ago) everything_ready_html: Download the export in format %{export_format}
(generated %{export_time} ago) + download_all: Download all files download: one: Download a file other: Download %{count} files diff --git a/app/components/dossiers/export_component/export_component.fr.yml b/app/components/dossiers/export_component/export_component.fr.yml index 7e185ccda..fa0c0d42d 100644 --- a/app/components/dossiers/export_component/export_component.fr.yml +++ b/app/components/dossiers/export_component/export_component.fr.yml @@ -7,6 +7,7 @@ fr: everything_short: Demander un export au format %{export_format} everything_pending_html: Un export au format %{export_format} est en train d’être généré
(demandé il y a %{export_time}) everything_ready_html: Télécharger l’export au format %{export_format}
(généré il y a %{export_time}) + download_all: Télécharger tous les dossiers download: one: Télécharger un dossier other: Télécharger %{count} dossiers diff --git a/app/components/dossiers/export_component/export_component.html.haml b/app/components/dossiers/export_component/export_component.html.haml index aad58e0c5..6efb67bc9 100644 --- a/app/components/dossiers/export_component/export_component.html.haml +++ b/app/components/dossiers/export_component/export_component.html.haml @@ -1,16 +1,15 @@ %span.dropdown{ data: { controller: 'menu-button' } } %button.button.dropdown-button{ data: { menu_button_target: 'button' } } - = t(".download", count: @count) + - if @count.nil? + = t(".download_all") + - else + = t(".download", count: @count) #download-menu.dropdown-content.fade-in-down{ style: 'width: 450px', data: { menu_button_target: 'menu' } } %ul.dropdown-items{ 'data-turbo': 'true' } - exports.each do |item| - export = item[:export] %li - if export.nil? - // i18n-tasks-use t('.everything_csv_html') - // i18n-tasks-use t('.everything_xlsx_html') - // i18n-tasks-use t('.everything_ods_html') - // i18n-tasks-use t('.everything_zip_html') = link_to t(".everything_#{item[:format]}_html"), download_export_path(export_format: item[:format]), data: { turbo_method: :post } - elsif export.ready? = link_to ready_link_label(export), export.file.service_url, target: "_blank", rel: "noopener" diff --git a/app/models/export.rb b/app/models/export.rb index e31f69ed0..3e444243c 100644 --- a/app/models/export.rb +++ b/app/models/export.rb @@ -49,9 +49,7 @@ class Export < ApplicationRecord after_create_commit :compute_async FORMATS_WITH_TIME_SPAN = [:xlsx, :ods, :csv].flat_map do |format| - time_span_types.keys.map do |time_span_type| - { format: format, time_span_type: time_span_type } - end + [{ format: format, time_span_type: 'everything' }] end FORMATS = [:xlsx, :ods, :csv, :zip].map do |format| { format: format } diff --git a/app/views/instructeurs/procedures/deleted_dossiers.html.haml b/app/views/instructeurs/procedures/deleted_dossiers.html.haml index 9a2c2fe1d..69f5217a7 100644 --- a/app/views/instructeurs/procedures/deleted_dossiers.html.haml +++ b/app/views/instructeurs/procedures/deleted_dossiers.html.haml @@ -10,6 +10,8 @@ = render partial: 'header', locals: { procedure: @procedure, statut: @statut } .procedure-actions + - if @can_download_dossiers + = render Dossiers::ExportComponent.new(procedure: @procedure, exports: @exports) .container.flex= render partial: "tabs", locals: { procedure: @procedure, statut: @statut, diff --git a/app/views/instructeurs/procedures/download_export.turbo_stream.haml b/app/views/instructeurs/procedures/download_export.turbo_stream.haml index 103a64e4f..27225338a 100644 --- a/app/views/instructeurs/procedures/download_export.turbo_stream.haml +++ b/app/views/instructeurs/procedures/download_export.turbo_stream.haml @@ -1,3 +1,7 @@ - if @can_download_dossiers - = turbo_stream.update_all '.dossiers-export' do - = render Dossiers::ExportComponent.new(procedure: @procedure, exports: @exports, statut: @statut, count: @dossiers_count) + - if @statut.nil? + = turbo_stream.update_all '.procedure-actions' do + = render Dossiers::ExportComponent.new(procedure: @procedure, exports: @exports) + - else + = turbo_stream.update_all '.dossiers-export' do + = render Dossiers::ExportComponent.new(procedure: @procedure, exports: @exports, statut: @statut, count: @dossiers_count) diff --git a/app/views/instructeurs/procedures/show.html.haml b/app/views/instructeurs/procedures/show.html.haml index 8c1090f38..ce0205fb0 100644 --- a/app/views/instructeurs/procedures/show.html.haml +++ b/app/views/instructeurs/procedures/show.html.haml @@ -10,6 +10,8 @@ = render partial: 'header', locals: { procedure: @procedure, statut: @statut } .procedure-actions + - if @can_download_dossiers + = render Dossiers::ExportComponent.new(procedure: @procedure, exports: @exports) .container.flex= render partial: "tabs", locals: { procedure: @procedure, statut: @statut,