mirror of
https://github.com/GSA/notifications-admin.git
synced 2026-07-22 00:49:23 -04:00
Don’t show template stats if one template used
If you’ve only used one template then this section of the page isn’t doing its job, which is to show a comparison of the different kinds of message you’re showing. I think our initial assumption was that everyone would be using multiple templates, so it was good to show this part of the page during the onboarding, to show users where the information was going to appear. But we have lots of services who only send one template now, typically where they’re populating the contents of the template themselves. In which case this part of the page doesn’t offer them any value.
This commit is contained in:
@@ -33,13 +33,7 @@
|
||||
'See messages sent per month'
|
||||
) }}
|
||||
|
||||
{% if partials['has_template_statistics'] %}
|
||||
{{ ajax_block(partials, updates_url, 'template-statistics', interval=5) }}
|
||||
{{ show_more(
|
||||
url_for('.template_usage', service_id=current_service.id),
|
||||
'See templates used by month'
|
||||
) }}
|
||||
{% endif %}
|
||||
{{ ajax_block(partials, updates_url, 'template-statistics', interval=5) }}
|
||||
|
||||
{% if partials['has_jobs'] %}
|
||||
{{ ajax_block(partials, updates_url, 'jobs', interval=5) }}
|
||||
|
||||
@@ -2,46 +2,55 @@
|
||||
{% from "components/message-count-label.html" import message_count_label %}
|
||||
{% from "components/big-number.html" import big_number %}
|
||||
{% from "components/table.html" import list_table, field, right_aligned_field_heading, row_heading, spark_bar_field %}
|
||||
{% from "components/show-more.html" import show_more %}
|
||||
|
||||
<div class='dashboard-table'>
|
||||
{% call(item, row_number) list_table(
|
||||
template_statistics,
|
||||
caption="Templates used",
|
||||
caption_visible=False,
|
||||
empty_message='',
|
||||
field_headings=[
|
||||
'Template',
|
||||
'Messages sent'
|
||||
],
|
||||
field_headings_visible=True
|
||||
) %}
|
||||
<div class="ajax-block-container">
|
||||
{% if template_statistics|length > 1 %}
|
||||
<div class='dashboard-table'>
|
||||
{% call(item, row_number) list_table(
|
||||
template_statistics,
|
||||
caption="Templates used",
|
||||
caption_visible=False,
|
||||
empty_message='',
|
||||
field_headings=[
|
||||
'Template',
|
||||
'Messages sent'
|
||||
],
|
||||
field_headings_visible=True
|
||||
) %}
|
||||
|
||||
{% call row_heading() %}
|
||||
{% if item.is_precompiled_letter %}
|
||||
<span class="file-list-filename">
|
||||
Provided as PDF
|
||||
</span>
|
||||
<span class="file-list-hint">
|
||||
Letter
|
||||
</span>
|
||||
{% else %}
|
||||
<a class="file-list-filename" href="{{ url_for('.view_template', service_id=current_service.id, template_id=item.template_id) }}">{{ item.template_name }}</a>
|
||||
<span class="file-list-hint">
|
||||
{{ message_count_label(1, item.template_type, suffix='template')|capitalize }}
|
||||
</span>
|
||||
{% endif %}
|
||||
{% endcall %}
|
||||
{% if template_statistics|length > 1 %}
|
||||
{{ spark_bar_field(item.count, most_used_template_count, id=item.template_id) }}
|
||||
{% else %}
|
||||
{% call field() %}
|
||||
<span id='{{item.template_id}}' class="heading-small">
|
||||
{{ big_number(
|
||||
item.count,
|
||||
smallest=True
|
||||
) }}
|
||||
</span>
|
||||
{% call row_heading() %}
|
||||
{% if item.is_precompiled_letter %}
|
||||
<span class="file-list-filename">
|
||||
Provided as PDF
|
||||
</span>
|
||||
<span class="file-list-hint">
|
||||
Letter
|
||||
</span>
|
||||
{% else %}
|
||||
<a class="file-list-filename" href="{{ url_for('.view_template', service_id=current_service.id, template_id=item.template_id) }}">{{ item.template_name }}</a>
|
||||
<span class="file-list-hint">
|
||||
{{ message_count_label(1, item.template_type, suffix='template')|capitalize }}
|
||||
</span>
|
||||
{% endif %}
|
||||
{% endcall %}
|
||||
{% if template_statistics|length > 1 %}
|
||||
{{ spark_bar_field(item.count, most_used_template_count, id=item.template_id) }}
|
||||
{% else %}
|
||||
{% call field() %}
|
||||
<span id='{{item.template_id}}' class="heading-small">
|
||||
{{ big_number(
|
||||
item.count,
|
||||
smallest=True
|
||||
) }}
|
||||
</span>
|
||||
{% endcall %}
|
||||
{% endif %}
|
||||
{% endcall %}
|
||||
{% endif %}
|
||||
{% endcall %}
|
||||
{{ show_more(
|
||||
url_for('.template_usage', service_id=current_service.id),
|
||||
'See templates used by month'
|
||||
) }}
|
||||
</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
|
||||
@@ -496,6 +496,45 @@ def test_should_show_recent_templates_on_dashboard(
|
||||
assert '100' in table_rows[3].find_all('td')[0].text
|
||||
|
||||
|
||||
@pytest.mark.parametrize('stats', (
|
||||
pytest.param(
|
||||
[stub_template_stats[0]],
|
||||
),
|
||||
pytest.param(
|
||||
[stub_template_stats[0], stub_template_stats[1]],
|
||||
marks=pytest.mark.xfail(raises=AssertionError),
|
||||
)
|
||||
))
|
||||
def test_should_not_show_recent_templates_on_dashboard_if_only_one_template_used(
|
||||
client_request,
|
||||
mocker,
|
||||
mock_get_service_templates,
|
||||
mock_get_jobs,
|
||||
mock_get_service_statistics,
|
||||
mock_get_usage,
|
||||
mock_get_inbound_sms_summary,
|
||||
stats,
|
||||
):
|
||||
mock_template_stats = mocker.patch(
|
||||
'app.template_statistics_client.get_template_statistics_for_service',
|
||||
return_value=stats,
|
||||
)
|
||||
|
||||
page = client_request.get('main.service_dashboard', service_id=SERVICE_ONE_ID)
|
||||
main = page.select_one('main').text
|
||||
|
||||
mock_template_stats.assert_called_once_with(SERVICE_ONE_ID, limit_days=7)
|
||||
|
||||
assert stats[0]['template_name'] == 'one'
|
||||
assert stats[0]['template_name'] not in main
|
||||
|
||||
# count appears as total, but not per template
|
||||
expected_count = stats[0]['count']
|
||||
assert expected_count == 50
|
||||
assert main.count(str(expected_count)) == 1
|
||||
assert '50 text messages sent' in normalize_spaces(main)
|
||||
|
||||
|
||||
@freeze_time("2016-07-01 12:00") # 4 months into 2016 financial year
|
||||
@pytest.mark.parametrize('extra_args', [
|
||||
{},
|
||||
@@ -763,7 +802,7 @@ def test_should_show_recent_jobs_on_dashboard(
|
||||
assert third_call[1]['limit_days'] == 7
|
||||
assert 'scheduled' not in third_call[1]['statuses']
|
||||
|
||||
table_rows = page.find_all('tbody')[2].find_all('tr')
|
||||
table_rows = page.find_all('tbody')[1].find_all('tr')
|
||||
|
||||
assert len(table_rows) == 4
|
||||
|
||||
|
||||
Reference in New Issue
Block a user