diff --git a/app/assets/images/preview_error.png b/app/assets/images/preview_error.png new file mode 100644 index 000000000..ffb577bcd Binary files /dev/null and b/app/assets/images/preview_error.png differ diff --git a/app/assets/images/team.jpg b/app/assets/images/team.jpg new file mode 100644 index 000000000..a7cf7c625 Binary files /dev/null and b/app/assets/images/team.jpg differ diff --git a/app/main/views/notifications.py b/app/main/views/notifications.py index 92b4447fb..7c61f8127 100644 --- a/app/main/views/notifications.py +++ b/app/main/views/notifications.py @@ -2,6 +2,7 @@ import base64 from datetime import datetime +import os from flask import ( Response, abort, @@ -12,6 +13,7 @@ from flask import ( url_for, ) from flask_login import login_required +from notifications_python_client.errors import APIError from app import ( current_service, @@ -55,6 +57,7 @@ def view_notification(service_id, notification_id): show_recipient=True, redact_missing_personalisation=True, ) + template.values = get_all_personalisation_from_notification(notification) if notification['job']: job = job_api_client.get_job(service_id, notification['job']['id'])['data'] @@ -108,14 +111,20 @@ def view_letter_notification_as_preview(service_id, notification_id, filetype): template.values = notification['personalisation'] - preview = notification_api_client.get_notification_letter_preview( - service_id, - notification_id, - filetype, - page=request.args.get('page') - ) + try: + preview = notification_api_client.get_notification_letter_preview( + service_id, + notification_id, + filetype, + page=request.args.get('page') + ) - return base64.b64decode(preview['content']) + display_file = base64.b64decode(preview['content']) + except APIError: + with open(os.path.join(os.path.dirname(__file__), "../../assets/images/preview_error.png"), "rb") as file: + display_file = file.read() + + return display_file @main.route("/services//notification/.json") diff --git a/app/templates/views/notifications/notification.html b/app/templates/views/notifications/notification.html index 255a81239..a0b483420 100644 --- a/app/templates/views/notifications/notification.html +++ b/app/templates/views/notifications/notification.html @@ -35,11 +35,17 @@ Estimated delivery date: {{ estimated_letter_delivery_date|string|format_date_short }}

- Download as a PDF -

+ {% if not error %} + Download as a PDF + {% endif %} +

{% endif %} - {{ template|string }} + {% if error %} + Error Creating PDF Preview + {% else %} + {{ template|string }} + {% endif %} {% if template.template_type != 'letter' %} {{ ajax_block(partials, updates_url, 'status', finished=finished) }}