From 4b02612d935109860607036eade312cdc4a470a2 Mon Sep 17 00:00:00 2001 From: Chris Hill-Scott Date: Fri, 23 Jun 2017 14:43:39 +0100 Subject: [PATCH] Fix missing recipients on notification page MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit For some reason: - notifications sent from CSV files have the recipient as part of the personalisation - notifications sent via the API don’t have the recipient as part of the personalisation I’d only tested it locally with CSV-sent files so didn’t spot this. The `conftest.py` fixtures we set up like the API already, but we didn’t have an explicit test. This commit adds a method to append the recipient to the personalisation, so we can populate the template with it. --- app/main/views/notifications.py | 17 ++++++++++++++++- tests/app/main/views/test_notifications.py | 3 +++ 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/app/main/views/notifications.py b/app/main/views/notifications.py index 20d309a21..e29f06ce0 100644 --- a/app/main/views/notifications.py +++ b/app/main/views/notifications.py @@ -57,7 +57,7 @@ def view_notification(service_id, notification_id): ), show_recipient=True, ) - template.values = notification['personalisation'] + template.values = get_all_personalisation_from_notification(notification) if notification['job']: job = job_api_client.get_job(service_id, notification['job']['id'])['data'] else: @@ -106,3 +106,18 @@ def get_single_notification_partials(notification): notification=notification ), } + + +def get_all_personalisation_from_notification(notification): + if notification['template']['template_type'] == 'email': + return dict( + email_address=notification['to'], + **notification['personalisation'] + ) + if notification['template']['template_type'] == 'sms': + return dict( + phone_number=notification['to'], + **notification['personalisation'] + ) + if notification['template']['template_type'] == 'letter': + return notification['personalisation'] diff --git a/tests/app/main/views/test_notifications.py b/tests/app/main/views/test_notifications.py index 10cfa2485..5c36bb6f8 100644 --- a/tests/app/main/views/test_notifications.py +++ b/tests/app/main/views/test_notifications.py @@ -43,6 +43,9 @@ def test_notification_status_page_shows_details( notification_id=fake_uuid ) + assert normalize_spaces(page.select('.sms-message-recipient')[0].text) == ( + 'To: 07123456789' + ) assert normalize_spaces(page.select('.sms-message-wrapper')[0].text) == ( 'service one: hello Jo' )