From c2bc7eca2c2dee1fff277d04aeff421bb21c9c26 Mon Sep 17 00:00:00 2001 From: Chris Hill-Scott Date: Fri, 16 Mar 2018 11:03:30 +0000 Subject: [PATCH] Make pricing page consistent in talking about MoU MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit We shouldn’t tell people on one page (the terms page) that we know about their organisations agreement and then on the pricing page tell them to contact us to find out what we know about the agreement. So this commit adds the same logic from the terms page to the pricing page, with wording that makes sense in the pricing context. --- app/main/views/index.py | 1 + app/templates/views/pricing.html | 18 ++++++++++++++---- tests/app/main/views/test_index.py | 23 +++++++++++++++++++---- 3 files changed, 34 insertions(+), 8 deletions(-) diff --git a/app/main/views/index.py b/app/main/views/index.py index d269c4d08..28b8a148d 100644 --- a/app/main/views/index.py +++ b/app/main/views/index.py @@ -52,6 +52,7 @@ def pricing(): for cc, country in INTERNATIONAL_BILLING_RATES.items() ], key=lambda x: x[0]), search_form=SearchTemplatesForm(), + agreement_info=AgreementInfo.from_current_user(), ) diff --git a/app/templates/views/pricing.html b/app/templates/views/pricing.html index 1dc619705..e16c26d17 100644 --- a/app/templates/views/pricing.html +++ b/app/templates/views/pricing.html @@ -30,11 +30,11 @@
  • 25,000 free text messages for other public sector services
  • It costs 1.58 pence (plus VAT) for each text message you send after your free allowance.

    - +

    Multiple services

    If your organisation offers multiple services, you can have a different Notify account for each of them.

    Each service will get its own free message allowance.

    - +

    Long text messages

    If a text message is beyond a certain length, it’ll be charged as more than one message:

    @@ -124,8 +124,18 @@

    How to pay

    You can find details of how to pay for Notify in our data sharing and financial agreement.

    -

    Contact us to get a copy of the agreement or find out if we already have one in place with your organisation.

    - +

    + Contact us to get a copy of the agreement + {% if agreement_info.agreement_signed %} + ({{ agreement_info.owner }} has already accepted it). + {% else %} + {% if agreement_info.owner and agreement_info.agreement_signed != None %} + ({{ agreement_info.owner }} hasn’t accepted it yet). + {% else %} + or find out if we already have one in place with your organisation. + {% endif %} + {% endif %} +

    diff --git a/tests/app/main/views/test_index.py b/tests/app/main/views/test_index.py index 0ade14647..72db76a0c 100644 --- a/tests/app/main/views/test_index.py +++ b/tests/app/main/views/test_index.py @@ -102,13 +102,17 @@ def test_terms_is_generic_if_user_is_not_logged_in( ) -@pytest.mark.parametrize('email_address, expected_first_paragraph', [ +@pytest.mark.parametrize('email_address, expected_terms_paragraph, expected_pricing_paragraph', [ ( 'test@cabinet-office.gov.uk', ( 'Your organisation (Cabinet Office) has already accepted ' 'the GOV.UK Notify data sharing and financial agreement.' ), + ( + 'Contact us to get a copy of the agreement ' + '(Cabinet Office has already accepted it).' + ), ), ( 'test@aylesburytowncouncil.gov.uk', @@ -117,6 +121,10 @@ def test_terms_is_generic_if_user_is_not_logged_in( 'accept our data sharing and financial agreement. Contact ' 'us to get a copy.' ), + ( + 'Contact us to get a copy of the agreement ' + '(Aylesbury Town Council hasn’t accepted it yet).' + ), ), ( 'larry@downing-street.gov.uk', @@ -124,6 +132,10 @@ def test_terms_is_generic_if_user_is_not_logged_in( 'Your organisation must also accept our data sharing and ' 'financial agreement. Contact us to get a copy.' ), + ( + 'Contact us to get a copy of the agreement or find out if ' + 'we already have one in place with your organisation.' + ), ), ]) def test_terms_tells_logged_in_users_what_we_know_about_their_agreement( @@ -131,10 +143,13 @@ def test_terms_tells_logged_in_users_what_we_know_about_their_agreement( fake_uuid, client_request, email_address, - expected_first_paragraph, + expected_terms_paragraph, + expected_pricing_paragraph, ): user = active_user_with_permissions(fake_uuid) user.email_address = email_address mocker.patch('app.user_api_client.get_user', return_value=user) - page = client_request.get('main.terms') - assert normalize_spaces(page.select('main p')[1].text) == expected_first_paragraph + terms_page = client_request.get('main.terms') + pricing_page = client_request.get('main.pricing') + assert normalize_spaces(terms_page.select('main p')[1].text) == expected_terms_paragraph + assert normalize_spaces(pricing_page.select('main p')[-1].text) == expected_pricing_paragraph