diff --git a/app/__init__.py b/app/__init__.py index 89e9e91cb..e2852b6b3 100644 --- a/app/__init__.py +++ b/app/__init__.py @@ -12,7 +12,9 @@ from flask import ( make_response, current_app, request, - g) + g, + url_for +) from flask._compat import string_types from flask.globals import _lookup_req_object from flask_login import LoginManager @@ -112,6 +114,7 @@ def create_app(): application.add_template_filter(format_date_short) application.add_template_filter(format_notification_status) application.add_template_filter(format_notification_status_as_field_status) + application.add_template_filter(format_notification_status_as_url) application.after_request(useful_headers_after_request) application.after_request(save_service_after_request) @@ -262,6 +265,15 @@ def format_notification_status_as_field_status(status): }.get(status, 'error') +def format_notification_status_as_url(status): + url = partial(url_for, "main.delivery_and_failure") + return { + 'technical-failure': url(_anchor='technical-failure'), + 'temporary-failure': url(_anchor='not-accepting-messages'), + 'permanent-failure': url(_anchor='does-not-exist') + }.get(status) + + @login_manager.user_loader def load_user(user_id): return user_api_client.get_user(user_id) diff --git a/app/templates/partials/jobs/notifications.html b/app/templates/partials/jobs/notifications.html index 506c2007d..74971d1d8 100644 --- a/app/templates/partials/jobs/notifications.html +++ b/app/templates/partials/jobs/notifications.html @@ -34,7 +34,13 @@ align='right', status=item.status|format_notification_status_as_field_status ) %} + {% if item.status|format_notification_status_as_url %} + + {% endif %} {{ item.status|format_notification_status(item.template.template_type) }} + {% if item.status|format_notification_status_as_url %} + + {% endif %} {% endcall %} {% endcall %} diff --git a/app/templates/views/delivery-and-failure.html b/app/templates/views/delivery-and-failure.html index 4a9153ef8..ac3c9a8f8 100644 --- a/app/templates/views/delivery-and-failure.html +++ b/app/templates/views/delivery-and-failure.html @@ -42,6 +42,8 @@ Delivery and failure – GOV.UK Notify

You need to remove these email addresses or phone numbers from your database.

+ +

Inbox not accepting messages right now

This can happen for a number of reasons, eg the user’s inbox was full.

diff --git a/app/templates/views/notifications.html b/app/templates/views/notifications.html index 592eb3ec1..69d8ed40e 100644 --- a/app/templates/views/notifications.html +++ b/app/templates/views/notifications.html @@ -73,7 +73,13 @@ ) }} {% call field(status=item.status|format_notification_status_as_field_status, align='right') %} + {% if item.status|format_notification_status_as_url %} + + {% endif %} {{ item.status|format_notification_status(item.template.template_type) }} + {% if item.status|format_notification_status_as_url %} + + {% endif %} {% endcall %} {% endcall %}