Don’t show progress once notifications are gone

We work out how complete a job’s processing is by looking at how many
notifications have been created.

Later, we deleted all the notifications, according to the data retention
schedule. This makes it look like the job has gone back to 0% processed.

This commit accounts for this by not showing the % complete message once
a finished job has had its notifications deleted.
This commit is contained in:
Chris Hill-Scott
2019-12-30 16:25:09 +00:00
parent e3b1813ed7
commit d2f976c8ee
3 changed files with 24 additions and 2 deletions

View File

@@ -28,7 +28,7 @@
{% if template.template_type == 'letter' %} {% if template.template_type == 'letter' %}
<div class="keyline-block bottom-gutter-1-2"> <div class="keyline-block bottom-gutter-1-2">
{% endif %} {% endif %}
{% if percentage_complete < 100 %} {% if percentage_complete < 100 and job.job_status != 'finished' %}
<p class="{% if template.template_type != 'letter' %}bottom-gutter{% endif %} hint"> <p class="{% if template.template_type != 'letter' %}bottom-gutter{% endif %} hint">
Report is {{ "{:.0f}%".format(percentage_complete * 0.99) }} complete… Report is {{ "{:.0f}%".format(percentage_complete * 0.99) }} complete…
</p> </p>

View File

@@ -317,6 +317,27 @@ def test_should_show_job_without_notifications(
assert page.select_one('tbody').text.strip() == 'No messages to show' assert page.select_one('tbody').text.strip() == 'No messages to show'
def test_should_show_old_job(
client_request,
service_one,
active_user_with_permissions,
mock_get_service_template,
mock_get_job,
mocker,
mock_get_notifications_with_no_notifications,
mock_get_service_data_retention,
fake_uuid,
):
page = client_request.get(
'main.view_job',
service_id=service_one['id'],
job_id=fake_uuid,
)
assert not page.select('p.hint')
assert not page.select('a[download]')
assert page.select_one('tbody').text.strip() == 'No messages to show'
@freeze_time("2016-01-01 11:09:00.061258") @freeze_time("2016-01-01 11:09:00.061258")
def test_should_show_letter_job( def test_should_show_letter_job(
client_request, client_request,

View File

@@ -1818,7 +1818,8 @@ def mock_get_job_in_progress(mocker, api_user_active):
return {"data": job_json( return {"data": job_json(
service_id, api_user_active, job_id=job_id, service_id, api_user_active, job_id=job_id,
notification_count=10, notification_count=10,
notifications_requested=5 notifications_requested=5,
job_status='processing',
)} )}
return mocker.patch('app.job_api_client.get_job', side_effect=_get_job) return mocker.patch('app.job_api_client.get_job', side_effect=_get_job)