diff --git a/app/controllers/instructeurs/procedures_controller.rb b/app/controllers/instructeurs/procedures_controller.rb index 37a0f2c2c..9b76145ff 100644 --- a/app/controllers/instructeurs/procedures_controller.rb +++ b/app/controllers/instructeurs/procedures_controller.rb @@ -211,8 +211,12 @@ module Instructeurs if procedure.should_generate_export?(export_format) procedure.queue_export(current_instructeur, export_format) - flash.now.notice = "Nous générons cet export. Lorsque celui-ci sera disponible, vous recevrez une notification par email accompagnée d'un lien de téléchargement." - redirect_to procedure + respond_to do |format| + format.js do + flash.notice = "Nous générons cet export. Lorsque celui-ci sera disponible, vous recevrez une notification par email accompagnée d'un lien de téléchargement." + @procedure = procedure + end + end else redirect_to url_for(procedure.export_file(export_format)) end diff --git a/app/mailers/instructeur_mailer.rb b/app/mailers/instructeur_mailer.rb index d0aae6b81..d132c0005 100644 --- a/app/mailers/instructeur_mailer.rb +++ b/app/mailers/instructeur_mailer.rb @@ -46,7 +46,7 @@ class InstructeurMailer < ApplicationMailer def notify_procedure_export_available(instructeur, procedure, export_format) @procedure = procedure @export_format = export_format - subject = "Votre export de la procédure nº #{procedure.id} est disponible" + subject = "Votre export de la démarche nº #{procedure.id} est disponible" mail(to: instructeur.email, subject: subject) end diff --git a/app/models/procedure.rb b/app/models/procedure.rb index 240fc3998..4e14e7f94 100644 --- a/app/models/procedure.rb +++ b/app/models/procedure.rb @@ -168,7 +168,7 @@ class Procedure < ApplicationRecord end def queue_export(instructeur, export_format) - ExportProcedureJob.perform_later(procedure, instructeur, export_format) + ExportProcedureJob.perform_now(self, instructeur, export_format) case export_format.to_sym when :csv update(csv_export_queued: true) @@ -259,6 +259,8 @@ class Procedure < ApplicationRecord xlsx_export_file.purge_later ods_export_file.purge_later csv_export_file.purge_later + + update(csv_export_queued: false, xlsx_export_queued: false, ods_export_queued: false) end def locked? diff --git a/app/views/instructeur_mailer/notify_procedure_export_available.html.haml b/app/views/instructeur_mailer/notify_procedure_export_available.html.haml index cc9425645..678dfd08b 100644 --- a/app/views/instructeur_mailer/notify_procedure_export_available.html.haml +++ b/app/views/instructeur_mailer/notify_procedure_export_available.html.haml @@ -2,7 +2,7 @@ Bonjour, %p - Vous avez demandé un export des dossiers de la procédure nº #{@procedure.id} « #{@procedure.libelle} » au format #{@export_format}. + Votre export des dossiers de la démarche nº #{@procedure.id} « #{@procedure.libelle} » au format #{@export_format} est prêt. %p Cliquez sur le lien ci-dessous pour le télécharger : diff --git a/app/views/instructeurs/procedures/_download_dossiers.html.haml b/app/views/instructeurs/procedures/_download_dossiers.html.haml index 2eab6536e..10902baae 100644 --- a/app/views/instructeurs/procedures/_download_dossiers.html.haml +++ b/app/views/instructeurs/procedures/_download_dossiers.html.haml @@ -11,26 +11,23 @@ %li - if procedure.xlsx_export_stale? - if procedure.xlsx_export_queued? - L'export au format .xlsx est en cours de préparation - = link_to "rafraichir", download_export_instructeur_procedure_path(procedure, export_format: :xlsx), remote: true + L'export au format .xlsx est en cours de préparation, vous recevrez un email lorsqu'il sera disponible. - else - = link_to "Préparer le téléchargement de l'export au format .xlsx", download_export_instructeur_procedure_path(procedure, export_format: :xlsx), remote: true + = link_to "Exporter au format .xlsx", download_export_instructeur_procedure_path(procedure, export_format: :xlsx), remote: true - else = link_to "Au format .xlsx", url_for(procedure.xlsx_export_file), target: "_blank", rel: "noopener" %li - if procedure.ods_export_stale? - if procedure.ods_export_queued? - L'export au format .ods est en cours de préparation - = link_to "rafraichir", download_export_instructeur_procedure_path(procedure, export_format: :ods), remote: true + L'export au format .ods est en cours de préparation, vous recevrez un email lorsqu'il sera disponible. - else - = link_to "Préparer le téléchargement de l'export au format .ods", download_export_instructeur_procedure_path(procedure, export_format: :ods)#, remote: true + = link_to "Préparer le téléchargement de l'export au format .ods", download_export_instructeur_procedure_path(procedure, export_format: :ods), remote: true - else = link_to "Au format .ods", url_for(procedure.ods_export_file), target: "_blank", rel: "noopener" %li - if procedure.csv_export_stale? - if procedure.csv_export_queued? - L'export au format .csv est en cours de préparation - = link_to "rafraichir", download_export_instructeur_procedure_path(procedure, export_format: :csv), remote: true + L'export au format .csv est en cours de préparation, vous recevrez un email lorsqu'il sera disponible. - else = link_to "Préparer le téléchargement de l'export au format .csv", download_export_instructeur_procedure_path(procedure, export_format: :csv), remote: true - else diff --git a/app/views/instructeurs/procedures/download_export.js.erb b/app/views/instructeurs/procedures/download_export.js.erb new file mode 100644 index 000000000..cb6442733 --- /dev/null +++ b/app/views/instructeurs/procedures/download_export.js.erb @@ -0,0 +1,2 @@ +<%= render_to_element('.procedure-actions', partial: "download_dossiers", locals: { procedure: @procedure }) %> +<%= render_flash %>