mirror of
https://github.com/GSA/notifications-admin.git
synced 2026-07-04 00:18:52 -04:00
Use big numbers for organisation usage
This is the pattern we use to display counts of things on the dashboard and usage pages. It does some nice stuff like dealing with comma-separating and formatting monetary amounts. This commit also adds some logic to show the free allowance used if the service hasn’t spent anything on text messages yet.
This commit is contained in:
@@ -1,3 +1,4 @@
|
||||
{% from "components/big-number.html" import big_number %}
|
||||
{% extends "org_template.html" %}
|
||||
|
||||
{% block org_page_title %}
|
||||
@@ -16,9 +17,37 @@
|
||||
<a href="{{ url_for('main.usage', service_id=service.service_id) }}" class="govuk-link govuk-link--no-visited-state browse-list-link">{{ service.service_name }}</a>
|
||||
</li>
|
||||
<div class="grid-row">
|
||||
<div class="column-one-third">{{ service.emails_sent|format_thousands }} emails sent</div>
|
||||
<div class="column-one-third">{{ "£{:,.2f}".format(service.sms_cost) }} spent on text messages</div>
|
||||
<div class="column-one-third">{{ "£{:,.2f}".format(service.letter_cost) }} spent on letters</div>
|
||||
<div class="column-one-third">
|
||||
{{ big_number(
|
||||
service.emails_sent,
|
||||
label='emails sent',
|
||||
smallest=True
|
||||
) }}
|
||||
</div>
|
||||
<div class="column-one-third">
|
||||
{% if service.sms_cost %}
|
||||
{{ big_number(
|
||||
service.sms_cost,
|
||||
'spent on text messages',
|
||||
currency="£",
|
||||
smallest=True
|
||||
) }}
|
||||
{% else %}
|
||||
{{ big_number(
|
||||
service.free_sms_limit - service.sms_remainder,
|
||||
'free text messages sent',
|
||||
smallest=True
|
||||
) }}
|
||||
{% endif %}
|
||||
</div>
|
||||
<div class="column-one-third">
|
||||
{{ big_number(
|
||||
service.letter_cost,
|
||||
'spent on letters',
|
||||
currency="£",
|
||||
smallest=True
|
||||
) }}
|
||||
</div>
|
||||
</div>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
|
||||
@@ -403,7 +403,7 @@ def test_organisation_services_shows_live_services_and_usage(
|
||||
'free_sms_limit': 250000, 'letter_cost': 30.50, 'sms_billable_units': 122, 'sms_cost': 1.93,
|
||||
'sms_remainder': None},
|
||||
{'service_id': SERVICE_TWO_ID, 'service_name': '5', 'chargeable_billable_sms': 0, 'emails_sent': 20000,
|
||||
'free_sms_limit': 250000, 'letter_cost': 0, 'sms_billable_units': 2500, 'sms_cost': 0.0,
|
||||
'free_sms_limit': 250000, 'letter_cost': 0, 'sms_billable_units': 2500, 'sms_cost': 42.0,
|
||||
'sms_remainder': None}
|
||||
]}
|
||||
)
|
||||
@@ -424,7 +424,7 @@ def test_organisation_services_shows_live_services_and_usage(
|
||||
assert normalize_spaces(usage_rows[2].text) == "£30.50 spent on letters"
|
||||
assert services[1].find('a')['href'] == url_for('main.usage', service_id=SERVICE_TWO_ID)
|
||||
assert normalize_spaces(usage_rows[3].text) == "20,000 emails sent"
|
||||
assert normalize_spaces(usage_rows[4].text) == "£0.00 spent on text messages"
|
||||
assert normalize_spaces(usage_rows[4].text) == "£42.00 spent on text messages"
|
||||
assert normalize_spaces(usage_rows[5].text) == "£0.00 spent on letters"
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user