From 3e163721696cbcb1a746be0b3f23768dfb116361 Mon Sep 17 00:00:00 2001 From: Chris Hill-Scott Date: Tue, 2 May 2017 11:03:10 +0100 Subject: [PATCH] Tell users that letters are coming MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Users might be interested in letters. And when they’re fully available, users will probably be able to control whether letters are on/off for their service. Until that point, the only way of getting the feature is to ask us. So let’s make an in-the-meantime page that directs them to ask us, from the place where they’d be able to do it themselves. Wording TBC. --- app/main/views/service_settings.py | 9 +++++ app/templates/views/service-settings.html | 7 ++++ .../views/service-settings/set-letters.html | 38 +++++++++++++++++++ tests/app/main/views/test_service_settings.py | 37 +++++++++++++++++- 4 files changed, 89 insertions(+), 2 deletions(-) create mode 100644 app/templates/views/service-settings/set-letters.html diff --git a/app/main/views/service_settings.py b/app/main/views/service_settings.py index 8517aa2fd..d891164ea 100644 --- a/app/main/views/service_settings.py +++ b/app/main/views/service_settings.py @@ -286,6 +286,15 @@ def service_set_international_sms(service_id): ) +@main.route("/services//service-settings/set-letters", methods=['GET']) +@login_required +@user_has_permissions('manage_settings', admin_override=True) +def service_set_letters(service_id): + return render_template( + 'views/service-settings/set-letters.html', + ) + + @main.route("/services//service-settings/set-letter-contact-block", methods=['GET', 'POST']) @login_required @user_has_permissions('manage_settings', admin_override=True) diff --git a/app/templates/views/service-settings.html b/app/templates/views/service-settings.html index eb3ed8c2d..b133d1aa6 100644 --- a/app/templates/views/service-settings.html +++ b/app/templates/views/service-settings.html @@ -39,12 +39,19 @@ {{ text_field(current_service.sms_sender or '40604') }} {{ edit_field('Change', url_for('.service_set_sms_sender', service_id=current_service.id)) }} {% endcall %} + {% call row() %} {{ text_field('International text messages') }} {{ text_field('On' if current_service.can_send_international_sms else 'Off') }} {{ edit_field('Change', url_for('.service_set_international_sms', service_id=current_service.id)) }} {% endcall %} + {% call row() %} + {{ text_field('Letters') }} + {{ text_field('On' if current_service.can_send_letters else 'Off') }} + {{ edit_field('Change', url_for('.service_set_letters', service_id=current_service.id)) }} + {% endcall %} + {% if current_service.can_send_letters %} {% call row() %} {{ text_field('Letter contact details') }} diff --git a/app/templates/views/service-settings/set-letters.html b/app/templates/views/service-settings/set-letters.html new file mode 100644 index 000000000..1057ff45f --- /dev/null +++ b/app/templates/views/service-settings/set-letters.html @@ -0,0 +1,38 @@ +{% extends "withnav_template.html" %} +{% from "components/textbox.html" import textbox %} +{% from "components/page-footer.html" import page_footer %} + +{% block service_page_title %} + Text message sender +{% endblock %} + +{% block maincolumn_content %} + +
+
+

Letters

+ {% if current_service.can_send_letters %} +

+ Your service can send letters. +

+

+ If you want to stop your sending from sending letters, + get in touch with the GOV.UK Notify team. +

+ {% else %} +

+ Using GOV.UK Notify to send letters is an invitation‑only feature. +

+

+ If you want to try it out, + get in touch with the GOV.UK Notify team. +

+ {% endif %} + {{ page_footer( + back_link=url_for('.service_settings', service_id=current_service.id), + back_link_text='Back to settings' + ) }} +
+
+ +{% endblock %} diff --git a/tests/app/main/views/test_service_settings.py b/tests/app/main/views/test_service_settings.py index ad7c9663a..9a00cf602 100644 --- a/tests/app/main/views/test_service_settings.py +++ b/tests/app/main/views/test_service_settings.py @@ -9,6 +9,7 @@ from werkzeug.exceptions import InternalServerError import app from app.utils import email_safe from tests import validate_route_permission, service_json +from tests.app.test_utils import normalize_spaces from tests.conftest import active_user_with_permissions, platform_admin_user @@ -20,6 +21,7 @@ from tests.conftest import active_user_with_permissions, platform_admin_user 'Email reply to address None Change', 'Text message sender 40604 Change', 'International text messages Off Change', + 'Letters Off Change', ]), (platform_admin_user, [ 'Label Value Action', @@ -27,6 +29,7 @@ from tests.conftest import active_user_with_permissions, platform_admin_user 'Email reply to address None Change', 'Text message sender 40604 Change', 'International text messages Off Change', + 'Letters Off Change', 'Label Value Action', 'Email branding GOV.UK Change', 'Letter branding HM Government Change', @@ -73,6 +76,7 @@ def test_should_show_overview_for_service_with_more_things_set( 'Email reply to address test@example.com Change', 'Text message sender elevenchars Change', 'International text messages Off Change', + 'Letters Off Change', ]): assert row == " ".join(page.find_all('tr')[index + 1].text.split()) @@ -100,7 +104,7 @@ def test_letter_contact_block_shows_None_if_not_set( )) page = BeautifulSoup(response.data.decode('utf-8'), 'html.parser') - div = page.find_all('tr')[5].find_all('td')[1].div + div = page.find_all('tr')[6].find_all('td')[1].div assert div.text.strip() == 'None' assert 'default' in div.attrs['class'][0] @@ -118,7 +122,7 @@ def test_escapes_letter_contact_block( )) page = BeautifulSoup(response.data.decode('utf-8'), 'html.parser') - div = str(page.find_all('tr')[5].find_all('td')[1].div) + div = str(page.find_all('tr')[6].find_all('td')[1].div) assert 'foo
bar' in div assert '