From a73c3d8bdf51512d9c89aa9e0fa491ed48ecc5b8 Mon Sep 17 00:00:00 2001 From: Martin Date: Mon, 23 Jan 2023 12:03:33 +0100 Subject: [PATCH] fix(attestation): re-essaie une fois de telecharger le logo/signature au moment de generer l'attestation. sinon on peut se retrouver avec des dossier qui restent en status en construction alors qu'ils devraient etre automatiquement soit en instruction, soit accepte --- .../attestation_templates/show.pdf.prawn | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/app/views/administrateurs/attestation_templates/show.pdf.prawn b/app/views/administrateurs/attestation_templates/show.pdf.prawn index da58ab65e..287d7951a 100644 --- a/app/views/administrateurs/attestation_templates/show.pdf.prawn +++ b/app/views/administrateurs/attestation_templates/show.pdf.prawn @@ -31,6 +31,22 @@ created_at = @attestation.fetch(:created_at) logo = @attestation[:logo] signature = @attestation[:signature] +def download_file_and_retry(file_or_attached_one, max_attempts = 3) + if file_or_attached_one.is_a?(ActiveStorage::Attached::One) + file_or_attached_one.download + else + file_or_attached_one.rewind && file_or_attached_one.read + end +rescue Fog::OpenStack::Storage::NotFound => e + if max_attempts > 0 + max_attempts = max_attempts - 1 + sleep 1 + retry + else + raise e + end +end + prawn_document(margin: [top_margin, right_margin, bottom_margin, left_margin], page_size: page_size) do |pdf| pdf.font_families.update('marianne' => { normal: Rails.root.join('lib/prawn/fonts/marianne/marianne-regular.ttf') }) pdf.font 'marianne'