diff --git a/app/main/views/pricing.py b/app/main/views/pricing.py index 52bc273f3..18a3d426a 100644 --- a/app/main/views/pricing.py +++ b/app/main/views/pricing.py @@ -11,7 +11,7 @@ from app.main.views.sub_navigation_dictionaries import using_notify_nav CURRENT_SMS_RATE = '1.72' -@main.route('/pricing') +@main.route('/using-notify/pricing') def pricing(): return render_template( 'views/pricing/index.html', diff --git a/app/main/views/sub_navigation_dictionaries.py b/app/main/views/sub_navigation_dictionaries.py index 49853aac0..9c41fccb7 100644 --- a/app/main/views/sub_navigation_dictionaries.py +++ b/app/main/views/sub_navigation_dictionaries.py @@ -8,10 +8,10 @@ def features_nav(): # "name": "Emails", # "link": "main.features_email", # }, - { - "name": "Text messages", - "link": "main.features_sms", - }, + # { + # "name": "Text messages", + # "link": "main.features_sms", + # }, ] }, { @@ -35,14 +35,14 @@ def using_notify_nav(): "name": "Get started", "link": "main.get_started", }, - { - "name": "Pricing", - "link": "main.pricing", - }, { "name": "Trial mode", "link": "main.trial_mode_new", }, + { + "name": "Pricing", + "link": "main.pricing", + }, { "name": "Delivery status", "link": "main.message_status", diff --git a/app/navigation.py b/app/navigation.py index a22171f0c..116c95176 100644 --- a/app/navigation.py +++ b/app/navigation.py @@ -48,15 +48,19 @@ class HeaderNavigation(Navigation): 'features', 'features_email', 'features_sms', - 'message_status', 'roadmap', 'security', 'terms', - 'trial_mode_new', + }, + 'using_notify': { + 'get_started', 'using_notify', + 'pricing', + 'trial_mode_new', + 'message_status', + 'guidance_index', }, 'pricing': { - 'pricing', 'how_to_pay', 'billing_details', }, diff --git a/app/templates/admin_template.html b/app/templates/admin_template.html index 515eb0309..4cd04d3b4 100644 --- a/app/templates/admin_template.html +++ b/app/templates/admin_template.html @@ -46,11 +46,6 @@ {% if current_user.is_authenticated %} {% if current_user.platform_admin %} {% set navigation = [ - { - "href": url_for('main.support'), - "text": "Support", - "active": header_navigation.is_selected('support') - }, { "href": url_for('main.user_profile'), "text": current_user.name, @@ -64,13 +59,28 @@ { "href": url_for('main.sign_out'), "text": "Sign out" + }, + { + "href": url_for('main.support'), + "text": "Contact us", + "active": header_navigation.is_selected('support') } ] %} {% else %} {% set navigation = [ + { + "href": url_for('main.get_started'), + "text": "Using notify", + "active": header_navigation.is_selected('using_notify') + }, + { + "href": url_for('main.features'), + "text": "Features", + "active": header_navigation.is_selected('features') + }, { "href": url_for('main.support'), - "text": "Support", + "text": "Contact us", "active": header_navigation.is_selected('support') }, { @@ -87,9 +97,9 @@ {% else %} {% set navigation = [ { - "href": url_for('main.support'), - "text": "Support", - "active": header_navigation.is_selected('support') + "href": url_for('main.get_started'), + "text": "Using notify", + "active": header_navigation.is_selected('using_notify') }, { "href": url_for('main.features'), @@ -97,9 +107,9 @@ "active": header_navigation.is_selected('features') }, { - "href": url_for('main.pricing'), - "text": "Pricing", - "active": header_navigation.is_selected('pricing') + "href": url_for('main.support'), + "text": "Contact us", + "active": header_navigation.is_selected('support') }, { "href": url_for('main.sign_in'), diff --git a/app/templates/content_template.html b/app/templates/content_template.html index 70962095f..e217a5c1d 100644 --- a/app/templates/content_template.html +++ b/app/templates/content_template.html @@ -16,7 +16,7 @@
{% else %} -
+
{% endif %} {% block content_column_content %} diff --git a/app/templates/views/pricing/index.html b/app/templates/views/pricing/index.html index 830e06601..b6d5acc33 100644 --- a/app/templates/views/pricing/index.html +++ b/app/templates/views/pricing/index.html @@ -6,51 +6,60 @@ {% extends "content_template.html" %} {% block per_page_title %} - Pricing +Pricing {% endblock %} {% block content_column_content %} -

Pricing

+

Pricing

- {{ content_metadata( - data={ - "Last updated": "Feb 27, 2023" - } - ) }} +{{ content_metadata( +data={ +"Last updated": "Feb 27, 2023" +} +) }} -

U.S. Notify is free to use unless you:

- +

U.S. Notify is free to use unless you:

+ -

You’ll only pay for the additional text messages that you send. There’s no monthly charge, no setup fee and no procurement cost.

+

You’ll only pay for the additional text messages that you send. There’s no monthly charge, no setup fee and no + procurement cost.

-

- {% if not current_user.is_authenticated %} - Create an account, then add your unique service(s).

- {% else %} - Additional unique services may be added, although moving each service out of trial mode is subject to approval by the U.S. Notify team. - {% endif %} -

+

+ {% if not current_user.is_authenticated %} + Create an account, then + add your unique service(s). +

+{% else %} +Additional unique services may be added, although moving each service out of trial mode is subject to approval by the +U.S. Notify team. +{% endif %} +

-

When you add a new service it will start in trial mode.

+

When you add a new service it will start in trial mode.

- -

Text messages

-

During pilot phase, each service has an annual allowance of 250,000 free text messages. Once this allowance is met, the application will stop delivering messages.

- -

You’ll use more messages towards the allowance, if you send text messages longer than 160 characters.

-

You may also use more messages if you:

- +

Text messages

+

During pilot phase, each service has an annual allowance of 250,000 free text messages. Once this allowance is met, + the application will stop delivering messages.

+ +

You’ll use more messages towards the allowance, if you send text messages longer than 160 characters.

+

You may also use more messages if you:

+ - -

Long text messages

-

If a text message is longer than 160 characters (including spaces), it counts as more than one message.

+

Long text messages

+

If a text message is longer than 160 characters (including spaces), it counts as more than one message.

-
- {% call mapping_table( - caption='Text message pricing', - field_headings=['Message length', 'Charge'], - field_headings_visible=True, - caption_visible=False - ) %} - {% for message_length, charge in [ - ('Up to 160 characters', '1 text message'), - ('Up to 306 characters', '2 text messages'), - ('Up to 459 characters', '3 text messages'), - ('Up to 612 characters', '4 text messages'), - ('Up to 765 characters', '5 text messages'), - ('Up to 918 characters', '6 text messages'), - ] %} - {% call row() %} - {{ text_field(message_length) }} - {{ text_field(charge) }} - {% endcall %} - {% endfor %} - {% endcall %} -
+
+ {% call mapping_table( + caption='Text message pricing', + field_headings=['Message length', 'Charge'], + field_headings_visible=True, + caption_visible=False + ) %} + {% for message_length, charge in [ + ('Up to 160 characters', '1 text message'), + ('Up to 306 characters', '2 text messages'), + ('Up to 459 characters', '3 text messages'), + ('Up to 612 characters', '4 text messages'), + ('Up to 765 characters', '5 text messages'), + ('Up to 918 characters', '6 text messages'), + ] %} + {% call row() %} + {{ text_field(message_length) }} + {{ text_field(charge) }} + {% endcall %} + {% endfor %} + {% endcall %} +
-

Signs and symbols

+

Signs and symbols

-

- The following signs and symbols count as 2 characters each:
- []{}^\|~$ -

+

+ The following signs and symbols count as 2 characters each:
+ []{}^\|~$ +

-

Using them can increase the cost of sending text messages.

+

Using them can increase the cost of sending text messages.

-

Accents and accented characters

-

Some languages use accented characters.

-

The following accented characters do not affect the cost of sending text messages: Ä, É, Ö, Ü, à, ä, é, è, ì, ò, ö, ù, ü.

-

Using other accented characters can increase the cost of sending text messages.

+

Accents and accented characters

+

Some languages use accented characters.

+

The following accented characters do not affect the cost of sending text messages: Ä, É, Ö, Ü, à, ä, é, è, ì, ò, ö, + ù, ü.

+

Using other accented characters can increase the cost of sending text messages. +

{% set accentedChars %} -

- {% call mapping_table( - caption='Accented characters that affect text message charges', - field_headings=['Character', 'Description'], - field_headings_visible=True, - caption_visible=False - ) %} - {% for letter, description in [ - ('Â', 'Capital letter A with circumflex'), - ('Á', 'Capital letter A with acute'), - ('À', 'Capital letter A with grave'), - ('Ê', 'Capital letter E with circumflex'), - ('È', 'Capital letter E with grave'), - ('Ë', 'Capital letter E with dieresis'), - ('Î', 'Capital letter I with circumflex'), - ('Í', 'Capital letter I with acute'), - ('Ì', 'Capital letter I with grave'), - ('Ï', 'Capital letter I with dieresis'), - ('Ô', 'Capital letter O with circumflex'), - ('Ó', 'Capital letter O with acute'), - ('Ò', 'Capital letter O with grave'), - ('Û', 'Capital letter U with circumflex'), - ('Ú', 'Capital letter U with acute'), - ('Ù', 'Capital letter U with grave'), - ('Ŵ', 'Capital letter W with circumflex'), - ('Ẃ', 'Capital letter W with acute'), - ('Ẁ', 'Capital letter W with grave'), - ('Ẅ', 'Capital letter W with dieresis'), - ('Ŷ', 'Capital letter Y with circumflex'), - ('Ý', 'Capital letter Y with acute'), - ('Ỳ', 'Capital letter Y with grave'), - ('Ÿ', 'Capital letter Y with dieresis'), - ('â', 'Lower case letter a with circumflex'), - ('á', 'Lower case letter a with acute'), - ('ê', 'Lower case letter e with circumflex'), - ('ë', 'Lower case letter e with dieresis'), - ('î', 'Lower case letter i with circumflex'), - ('í', 'Lower case letter i with acute'), - ('ï', 'Lower case letter i with dieresis'), - ('ô', 'Lower case letter o with circumflex'), - ('ó', 'Lower case letter o with acute'), - ('û', 'Lower case letter u with circumflex'), - ('ú', 'Lower case letter u with acute'), - ('ŵ', 'Lower case letter w with circumflex'), - ('ẃ', 'Lower case letter w with acute'), - ('ẁ', 'Lower case letter w with grave'), - ('ẅ', 'Lower case letter w with dieresis'), - ('ŷ', 'Lower case letter y with circumflex'), - ('ý', 'Lower case letter y with acute'), - ('ỳ', 'Lower case letter y with grave'), - ('ÿ', 'Lower case letter y with dieresis'), - ] %} - {% call row() %} - {{ text_field(letter) }} - {{ text_field(description) }} - {% endcall %} - {% endfor %} - {% endcall %} -
- {% endset %} - {{ govukDetails({ - "summaryText": "Accented characters that affect text message charges", - "html": accentedChars - }) }} +
+ {% call mapping_table( + caption='Accented characters that affect text message charges', + field_headings=['Character', 'Description'], + field_headings_visible=True, + caption_visible=False + ) %} + {% for letter, description in [ + ('Â', 'Capital letter A with circumflex'), + ('Á', 'Capital letter A with acute'), + ('À', 'Capital letter A with grave'), + ('Ê', 'Capital letter E with circumflex'), + ('È', 'Capital letter E with grave'), + ('Ë', 'Capital letter E with dieresis'), + ('Î', 'Capital letter I with circumflex'), + ('Í', 'Capital letter I with acute'), + ('Ì', 'Capital letter I with grave'), + ('Ï', 'Capital letter I with dieresis'), + ('Ô', 'Capital letter O with circumflex'), + ('Ó', 'Capital letter O with acute'), + ('Ò', 'Capital letter O with grave'), + ('Û', 'Capital letter U with circumflex'), + ('Ú', 'Capital letter U with acute'), + ('Ù', 'Capital letter U with grave'), + ('Ŵ', 'Capital letter W with circumflex'), + ('Ẃ', 'Capital letter W with acute'), + ('Ẁ', 'Capital letter W with grave'), + ('Ẅ', 'Capital letter W with dieresis'), + ('Ŷ', 'Capital letter Y with circumflex'), + ('Ý', 'Capital letter Y with acute'), + ('Ỳ', 'Capital letter Y with grave'), + ('Ÿ', 'Capital letter Y with dieresis'), + ('â', 'Lower case letter a with circumflex'), + ('á', 'Lower case letter a with acute'), + ('ê', 'Lower case letter e with circumflex'), + ('ë', 'Lower case letter e with dieresis'), + ('î', 'Lower case letter i with circumflex'), + ('í', 'Lower case letter i with acute'), + ('ï', 'Lower case letter i with dieresis'), + ('ô', 'Lower case letter o with circumflex'), + ('ó', 'Lower case letter o with acute'), + ('û', 'Lower case letter u with circumflex'), + ('ú', 'Lower case letter u with acute'), + ('ŵ', 'Lower case letter w with circumflex'), + ('ẃ', 'Lower case letter w with acute'), + ('ẁ', 'Lower case letter w with grave'), + ('ẅ', 'Lower case letter w with dieresis'), + ('ŷ', 'Lower case letter y with circumflex'), + ('ý', 'Lower case letter y with acute'), + ('ỳ', 'Lower case letter y with grave'), + ('ÿ', 'Lower case letter y with dieresis'), + ] %} + {% call row() %} + {{ text_field(letter) }} + {{ text_field(description) }} + {% endcall %} + {% endfor %} + {% endcall %} +
+{% endset %} +{{ govukDetails({ +"summaryText": "Accented characters that affect text message charges", +"html": accentedChars +}) }} -
- {% call mapping_table( - caption='Pricing for text messages containing accented characters that affect the charges', - field_headings=['Message length', 'Charge'], - field_headings_visible=True, - caption_visible=False - ) %} - {% for message_length, charge in [ - ('Up to 70 characters', '1 text message'), - ('Up to 134 characters', '2 text messages'), - ('Up to 201 characters', '3 text messages'), - ('Up to 268 characters', '4 text messages'), - ('Each additional 67 characters', '1 additional text message'), - ] %} - {% call row() %} - {{ text_field(message_length) }} - {{ text_field(charge) }} - {% endcall %} - {% endfor %} - {% endcall %} -
+
+ {% call mapping_table( + caption='Pricing for text messages containing accented characters that affect the charges', + field_headings=['Message length', 'Charge'], + field_headings_visible=True, + caption_visible=False + ) %} + {% for message_length, charge in [ + ('Up to 70 characters', '1 text message'), + ('Up to 134 characters', '2 text messages'), + ('Up to 201 characters', '3 text messages'), + ('Up to 268 characters', '4 text messages'), + ('Each additional 67 characters', '1 additional text message'), + ] %} + {% call row() %} + {{ text_field(message_length) }} + {{ text_field(charge) }} + {% endcall %} + {% endfor %} + {% endcall %} +
-

Sending text messages to international numbers

-

It might cost more to send text messages to international numbers than U.S. ones, depending on the country.

- -{% endblock %} +{% endblock %} \ No newline at end of file diff --git a/tests/app/test_navigation.py b/tests/app/test_navigation.py index 7a502cb09..de0f51fc2 100644 --- a/tests/app/test_navigation.py +++ b/tests/app/test_navigation.py @@ -382,7 +382,7 @@ def test_a_page_should_nave_selected_navigation_item( @pytest.mark.parametrize('endpoint, selected_nav_item', [ # ('main.documentation', 'Documentation'), - ('main.support', 'Support'), + ('main.support', 'Contact us'), ]) def test_a_page_should_nave_selected_header_navigation_item( client_request,