Add letter counts to the platform admin page.

The big number counts are based on how many messages have been delivered. For letters we are using the requested count.
This commit is contained in:
Rebecca Law
2017-11-01 16:33:06 +00:00
parent 756bdd3181
commit 4acfd4101f
4 changed files with 15 additions and 7 deletions

View File

@@ -113,7 +113,6 @@ def create_global_stats(services):
'requested': 0 'requested': 0
} }
} }
for service in services: for service in services:
for msg_type, status in itertools.product(('sms', 'email', 'letter'), ('delivered', 'failed', 'requested')): for msg_type, status in itertools.product(('sms', 'email', 'letter'), ('delivered', 'failed', 'requested')):
stats[msg_type][status] += service['statistics'][msg_type][status] stats[msg_type][status] += service['statistics'][msg_type][status]

View File

@@ -23,8 +23,8 @@
</div> </div>
<div class="column-third"> <div class="column-third">
{{ big_number_with_status( {{ big_number_with_status(
global_stats.letter.delivered + global_stats.letter.failed, global_stats.letter.requested,
message_count_label(global_stats.letter.delivered, 'letter'), message_count_label(global_stats.letter.requested, 'letter'),
global_stats.letter.failed, global_stats.letter.failed,
global_stats.letter.failure_rate, global_stats.letter.failure_rate,
global_stats.letter.failure_rate|float > 3, global_stats.letter.failure_rate|float > 3,

View File

@@ -54,7 +54,7 @@
{% call row() %} {% call row() %}
{% if not service['active'] %} {% if not service['active'] %}
{% call field(status='default') %} {% call field(status='default', border=False) %}
<span class="heading-medium">archived</span> <span class="heading-medium">archived</span>
{% endcall %} {% endcall %}
{% elif service['research_mode'] %} {% elif service['research_mode'] %}
@@ -62,7 +62,7 @@
<span class="research-mode">research mode</span> <span class="research-mode">research mode</span>
{% endcall %} {% endcall %}
{% elif not service['restricted'] %} {% elif not service['restricted'] %}
{% call field(status='error') %} {% call field(status='error', border=False) %}
<span class="heading-medium">Live</span> <span class="heading-medium">Live</span>
{% endcall %} {% endcall %}
{% else %} {% else %}
@@ -72,6 +72,15 @@
{{ stats_fields('sms', service['stats']) }} {{ stats_fields('sms', service['stats']) }}
{% endcall %} {% endcall %}
{% call row() %}
{% call field(border=False) %}
{% endcall %}
{{ stats_fields('letter', service['stats']) }}
{% endcall %}
{% endcall %} {% endcall %}
{% endfor %} {% endfor %}

View File

@@ -97,7 +97,7 @@ def test_should_render_platform_admin_page(
response = client.get(url_for(endpoint)) response = client.get(url_for(endpoint))
assert response.status_code == 200 assert response.status_code == 200
page = BeautifulSoup(response.data.decode('utf-8'), 'html.parser') page = BeautifulSoup(response.data.decode('utf-8'), 'html.parser')
assert len(page.select('tbody tr')) == expected_services_shown * 2 # one row for SMS, one for email assert len(page.select('tbody tr')) == expected_services_shown * 3 # one row for SMS, one for email, one for letter
mock_get_detailed_services.assert_called_once_with({'detailed': True, mock_get_detailed_services.assert_called_once_with({'detailed': True,
'include_from_test_key': True, 'include_from_test_key': True,
'only_active': False}) 'only_active': False})
@@ -543,7 +543,7 @@ def test_should_show_correct_sent_totals_for_platform_admin(
assert email_total == 60 assert email_total == 60
assert sms_total == 40 assert sms_total == 40
assert letter_total == 45 assert letter_total == 60
@pytest.mark.parametrize('endpoint, restricted, research_mode', [ @pytest.mark.parametrize('endpoint, restricted, research_mode', [