diff --git a/app/__init__.py b/app/__init__.py index 75837af07..69ad58a25 100644 --- a/app/__init__.py +++ b/app/__init__.py @@ -362,18 +362,20 @@ def format_notification_status(status, template_type): 'sent': 'Sent internationally' }, 'letter': { - 'failed': 'Failed', + 'failed': '', 'technical-failure': 'Technical failure', - 'temporary-failure': 'Temporary failure', - 'permanent-failure': 'Permanent failure', - 'delivered': 'Delivered', - 'sending': 'Sending', - 'created': 'Sending', - 'sent': 'Delivered', - 'pending-virus-check': 'Pending virus check', + 'temporary-failure': '', + 'permanent-failure': '', + 'delivered': '', + 'received': '', + 'accepted': '', + 'sending': '', + 'created': '', + 'sent': '', + 'pending-virus-check': '', 'virus-scan-failed': 'Virus detected', - 'returned-letter': 'Delivered', - 'cancelled': 'Cancelled,', + 'returned-letter': '', + 'cancelled': '', 'validation-failed': 'Validation failed', } }[template_type].get(status, status) diff --git a/app/templates/components/table.html b/app/templates/components/table.html index b4863e947..80e118059 100644 --- a/app/templates/components/table.html +++ b/app/templates/components/table.html @@ -144,7 +144,7 @@ {% macro notification_status_field(notification) %} - {% set displayed_on_single_line = notification.status in ['created', 'pending', 'sending', 'delivered'] %} + {% set displayed_on_single_line = notification.status in ['created', 'pending', 'pending-virus-check', 'sending', 'sent', 'delivered', 'returned-letter', 'accepted', 'received', 'permanent-failure'] %} {% if not notification %} {% call field(align='right') %}{% endcall %} @@ -157,14 +157,7 @@ {% if notification.status|format_notification_status_as_url(notification.notification_type) %} {% endif %} - {% if notification['notification_type'] != "letter" or notification.status in ('virus-scan-failed', 'validation-failed') %} - {{ notification.status|format_notification_status( - notification.template.template_type - ) }} - {% endif %} - {% if notification.notification_type == "letter" and notification.status in ['permanent-failure', 'cancelled'] %} - Cancelled - {% endif %} + {{ notification.status|format_notification_status(notification.template.template_type) }} {% if notification.status|format_notification_status_as_url(notification.notification_type) %} {% endif %} diff --git a/app/templates/views/notifications/notification.html b/app/templates/views/notifications/notification.html index cab6d4765..eda9a1460 100644 --- a/app/templates/views/notifications/notification.html +++ b/app/templates/views/notifications/notification.html @@ -45,6 +45,11 @@
Validation failed – content is outside the printable area
+ {% elif notification_status == 'technical-failure' %} ++ Technical failure – Notify will resend once the team have + fixed the problem +
{% else %}{{ letter_print_day }} diff --git a/tests/app/main/views/test_activity.py b/tests/app/main/views/test_activity.py index a662b9996..54d8989fe 100644 --- a/tests/app/main/views/test_activity.py +++ b/tests/app/main/views/test_activity.py @@ -603,9 +603,15 @@ def test_big_numbers_and_search_dont_show_for_letters( "message_type, status, expected_hint_status, single_line", [ ('email', 'delivered', 'Delivered 27 September at 5:31pm', True), ('sms', 'delivered', 'Delivered 27 September at 5:31pm', True), + ('letter', 'created', '27 September at 5:30pm', True), + ('letter', 'sending', '27 September at 5:30pm', True), ('letter', 'delivered', '27 September at 5:30pm', True), - ('letter', 'permanent-failure', 'Cancelled 27 September at 5:31pm', False), + ('letter', 'received', '27 September at 5:30pm', True), + ('letter', 'accepted', '27 September at 5:30pm', True), + ('letter', 'permanent-failure', '27 September at 5:31pm', True), + ('letter', 'virus-scan-failed', 'Virus detected 27 September at 5:30pm', False), ('letter', 'validation-failed', 'Validation failed 27 September at 5:30pm', False), + ('letter', 'technical-failure', 'Technical failure 27 September at 5:30pm', False), ] ) def test_sending_status_hint_displays_correctly_on_notifications_page( diff --git a/tests/app/main/views/test_notifications.py b/tests/app/main/views/test_notifications.py index 40125b565..ba926a159 100644 --- a/tests/app/main/views/test_notifications.py +++ b/tests/app/main/views/test_notifications.py @@ -191,13 +191,26 @@ def test_notification_page_shows_page_for_letter_notification( assert mock_page_count.call_args_list[0][1]['values'] == {'name': 'Jo'} -@pytest.mark.parametrize('notification_status, expected_message', [ - ('permanent-failure', 'Cancelled 1 January at 1:02am'), - ('cancelled', 'Cancelled 1 January at 1:02am'), - ('validation-failed', 'Validation failed – content is outside the printable area'), -]) +@pytest.mark.parametrize('notification_status, expected_message', ( + ( + 'permanent-failure', + 'Cancelled 1 January at 1:02am', + ), + ( + 'cancelled', + 'Cancelled 1 January at 1:02am', + ), + ( + 'validation-failed', + 'Validation failed – content is outside the printable area', + ), + ( + 'technical-failure', + 'Technical failure – Notify will resend once the team have fixed the problem', + ), +)) @freeze_time("2016-01-01 01:01") -def test_notification_page_shows_cancelled_letter( +def test_notification_page_shows_cancelled_or_failed_letter( client_request, mocker, fake_uuid,