mirror of
https://github.com/GSA/notifications-admin.git
synced 2026-05-31 03:20:28 -04:00
Merge pull request #3167 from alphagov/hide-len-1-template-statistics
Don’t show template statistics on dashboard if only one template has been used
This commit is contained in:
@@ -334,7 +334,6 @@ def get_dashboard_partials(service_id):
|
||||
[row['count'] for row in template_statistics] or [0]
|
||||
),
|
||||
),
|
||||
'has_template_statistics': bool(template_statistics),
|
||||
'jobs': render_template(
|
||||
'views/dashboard/_jobs.html',
|
||||
jobs=immediate_jobs
|
||||
|
||||
@@ -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,44 @@
|
||||
{% 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 %}
|
||||
{{ spark_bar_field(item.count, most_used_template_count, id=item.template_id) }}
|
||||
{% 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