Skip to content

Commit

Permalink
Merge pull request #3167 from alphagov/hide-len-1-template-statistics
Browse files Browse the repository at this point in the history
Don’t show template statistics on dashboard if only one template has been used
  • Loading branch information
quis authored Nov 4, 2019
2 parents 47a491a + 0ac6a2c commit 6c5255f
Show file tree
Hide file tree
Showing 4 changed files with 78 additions and 48 deletions.
1 change: 0 additions & 1 deletion app/main/views/dashboard.py
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
8 changes: 1 addition & 7 deletions app/templates/views/dashboard/dashboard.html
Original file line number Diff line number Diff line change
Expand Up @@ -33,13 +33,7 @@ <h2 class="heading-medium">
'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) }}
Expand Down
76 changes: 37 additions & 39 deletions app/templates/views/dashboard/template-statistics.html
Original file line number Diff line number Diff line change
Expand Up @@ -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>
41 changes: 40 additions & 1 deletion tests/app/main/views/test_dashboard.py
Original file line number Diff line number Diff line change
Expand Up @@ -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', [
{},
Expand Down Expand Up @@ -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

Expand Down

0 comments on commit 6c5255f

Please sign in to comment.