Merge pull request #1395 from alphagov/pricing-update

Update pricing page with letters and international
This commit is contained in:
Chris Hill-Scott
2017-07-31 11:38:04 +01:00
committed by GitHub
2 changed files with 122 additions and 13 deletions

View File

@@ -1,9 +1,11 @@
from flask import (render_template, url_for, redirect, request, abort)
from app.main import main
from app import convert_to_boolean
from app.main.forms import SearchTemplatesForm
from flask_login import (login_required, current_user)
from notifications_utils.template import HTMLEmailTemplate
from notifications_utils.international_billing_rates import INTERNATIONAL_BILLING_RATES
@main.route('/')
@@ -31,7 +33,15 @@ def trial_mode():
@main.route('/pricing')
def pricing():
return render_template('views/pricing.html', sms_rate=0.0158)
return render_template(
'views/pricing.html',
sms_rate=0.0158,
international_sms_rates=sorted([
(cc, country['names'], country['billable_units'])
for cc, country in INTERNATIONAL_BILLING_RATES.items()
], key=lambda x: x[0]),
search_form=SearchTemplatesForm(),
)
@main.route('/delivery-and-failure')

View File

@@ -1,3 +1,6 @@
{% from "components/table.html" import mapping_table, row, text_field, field, row_heading %}
{% from "components/textbox.html" import textbox %}
{% extends "withoutnav_template.html" %}
{% block per_page_title %}
@@ -18,22 +21,113 @@
<h2 class="heading-medium">Text messages</h2>
<ul class="list list-bullet">
<li>Free allowance: 250,000 text messages per service, per financial year</li>
<li>If your messages are long, they will count as 2 or 3 text messages, depending on length:
<ul class="list list-bullet">
<li>Up to 160 characters = 1 text message</li>
<li>Up to 306 characters = 2 text messages</li>
<li>Up to 459 characters = 3 text messages</li>
</ul></li>
<li>Standard text message rate: {{ '{:.2f}'.format(sms_rate * 100) }} pence + VAT</li>
</ul>
<p>
Text message rate: {{ '{:.2f}'.format(sms_rate * 100) }} pence + VAT
</p>
<h3 class="heading-small">
Free allowance
</h3>
<p>
We simply charge you the costs we pay to our delivery partners.
We dont mark these costs up in any way.
All services have a free allowance of text messages, per financial year:
</p>
<ul class="list list-bullet">
<li>250,000 text messages for central government services</li>
<li>25,000 text messages for local government services</li>
</ul>
<h3 class="heading-small">
Long messages
</h3>
<p>
Long messages count as 2 or 3 text messages depending on length:
</p>
<ul class="list list-bullet">
<li>Up to 160 characters = 1 text message</li>
<li>Up to 306 characters = 2 text messages</li>
<li>Up to 459 characters = 3 text messages</li>
</ul>
<h3 class="heading-small">
International numbers
</h3>
<p>
Messages to international mobile numbers are charged at 1, 2, or 3
times the cost of messages to UK mobile numbers.
</p>
<details>
<summary>International text message rates</summary>
<div class="live-search" data-module="live-search" data-targets="#international-pricing .table-row">
{{ textbox(
search_form.search,
width='1-1',
label='Search by country name or code'
) }}
</div>
<div id="international-pricing" class="bottom-gutter-3-2">
{% call mapping_table(
caption='Letter pricing',
field_headings=['Country code', 'Country', 'Cost multipler'],
field_headings_visible=True,
caption_visible=False
) %}
{% for cc, names, billable_units in international_sms_rates %}
{% call row() %}
{{ text_field('+' + cc) }}
{% call field() %}
{% for name in names %}
{{ name }}<br>
{% endfor %}
{% endcall %}
{{ text_field('{}&hairsp;&times;'.format(billable_units)|safe) }}
{% endcall %}
{% endfor %}
{% endcall %}
</div>
</details>
<h2 class="heading-medium">
Letters
</h2>
<p>
Letters are printed double sided in colour. Prices include
printing, paper, envelope, and postage. All letters are sent
second class post.
</p>
<p>
The price of letters increases with the number of sheets printed:
</p>
<div class="bottom-gutter-3-2">
{% call mapping_table(
caption='Letter pricing',
field_headings=['', 'Central government', 'Local government'],
field_headings_visible=True,
caption_visible=False
) %}
{% for sheets, central, local in [
('1 sheet', '30', '33'),
('2 sheets', '33', '39'),
('3 sheets', '36', '45')
] %}
{% call row() %}
{% call row_heading() %} {{ sheets }} (double sided) {% endcall %}
{{ text_field(central + 'p + VAT') }}
{{ text_field(local + 'p + VAT') }}
{% endcall %}
{% endfor %}
{% endcall %}
</div>
<h2 class="heading-medium">No monthly charge or setup fee</h2>
<p>
There are no other charges for using Notify. Theres no monthly charge
@@ -45,6 +139,11 @@
of Notify. Were also covering the cost of the free emails and text messages.
</p>
<p>
We simply charge you the costs we pay to our delivery partners. We
dont mark these costs up in any way.
</p>
</div>
</div>