Format numbers as millions or billions

This matches the existing performance platform page, and I think is a
bit easier to read for high-level numbers where you don’t need to see
that they’re changing second-by-second.
This commit is contained in:
Chris Hill-Scott
2021-03-11 13:23:02 +00:00
parent 646075f61f
commit c3699e0e35
4 changed files with 14 additions and 8 deletions

View File

@@ -38,6 +38,7 @@ from app.config import configs
from app.extensions import antivirus_client, redis_client, zendesk_client
from app.formatters import (
convert_to_boolean,
format_billions,
format_date,
format_date_human,
format_date_normal,
@@ -527,6 +528,7 @@ def setup_event_handlers():
def add_template_filters(application):
for fn in [
format_billions,
format_datetime,
format_datetime_24h,
format_datetime_normal,

View File

@@ -515,3 +515,7 @@ def format_mobile_network(network):
if network in ('three', 'vodafone', 'o2'):
return network.capitalize()
return 'EE'
def format_billions(count):
return humanize.intword(count)

View File

@@ -22,28 +22,28 @@
<div class="govuk-grid-row">
<div class="govuk-grid-column-one-half">
<h3 class="govuk-visually-hidden">Total messages</h3>
<div class="product-page-big-number">{{ total_notifications }}</div>
<div class="product-page-big-number">{{ total_notifications|format_billions }}</div>
total
</div>
<div class="govuk-grid-column-one-half">
<div class="govuk-grid-row govuk-!-padding-top-4">
<div class="govuk-grid-column-one-third">
{{ big_number(
email_notifications,
email_notifications|format_billions,
label=email_notifications|message_count_noun('email'),
smallest=True,
) }}
</div>
<div class="govuk-grid-column-one-third">
{{ big_number(
sms_notifications,
sms_notifications|format_billions,
label=sms_notifications|message_count_noun('sms'),
smallest=True,
) }}
</div>
<div class="govuk-grid-column-one-third">
{{ big_number(
letter_notifications,
letter_notifications|format_billions,
label=letter_notifications|message_count_noun('letter'),
smallest=True,
) }}

View File

@@ -117,10 +117,10 @@ def test_should_render_performance_page(
''
'Messages sent since May 2016 '
'Total messages '
'1789000000 total '
'1,123,000,000 emails '
'987,654,321 text messages '
'1,234,567 letters '
'1.8 billion total '
'1.1 billion emails '
'987.7 million text messages '
'1.2 million letters '
''
'Date Emails Text messages Letters '
'21 February 2021 1,234,567 123,456 123 '