Merge pull request #604 from alphagov/improve-job-csv

Improve the ‘download a CSV’ from the job page
This commit is contained in:
Chris Hill-Scott
2016-05-24 10:11:42 +01:00
4 changed files with 14 additions and 8 deletions

View File

@@ -18,7 +18,8 @@ from app import (
job_api_client,
notification_api_client,
service_api_client,
current_service)
current_service,
format_datetime_short)
from app.main import main
from app.utils import (
get_page_from_request,
@@ -81,7 +82,10 @@ def view_job(service_id, job_id):
notification_api_client.get_notifications_for_service(service_id, job_id)['notifications'])
return csv_content, 200, {
'Content-Type': 'text/csv; charset=utf-8',
'Content-Disposition': 'inline; filename="job_notifications.csv"'
'Content-Disposition': 'inline; filename="{} - {}.csv"'.format(
template['name'],
format_datetime_short(job['created_at'])
)
}
return render_template(
'views/jobs/job.html',

View File

@@ -30,16 +30,14 @@
)}}
{% endif %}
<p class="bottom-gutter">
<a href="{{ request.url }}?&amp;download=csv" download class="heading-small">Download as a CSV file</a>
&emsp;
Delivery information is available for 7 days
</p>
{% include 'partials/jobs/status.html' %}
{% include 'partials/jobs/count.html' %}
{% include 'partials/jobs/notifications.html' %}
<p class="table-show-more-link">
<a href="{{ request.url }}?&amp;download=csv" download>Download as a CSV file</a>
</p>
{% endblock %}

View File

@@ -248,6 +248,7 @@ def test_should_show_notifications_for_a_service_with_next_previous(app_,
def test_should_download_notifications_for_a_service(app_,
service_one,
active_user_with_permissions,
mock_get_service_template,
mock_get_notifications,
mocker):
with app_.test_request_context():
@@ -264,6 +265,7 @@ def test_should_download_notifications_for_a_service(app_,
assert 'text/csv' in response.headers['Content-Type']
@freeze_time("2016-01-01 11:09:00.061258")
def test_should_download_notifications_for_a_job(app_,
api_user_active,
mock_login,
@@ -286,3 +288,4 @@ def test_should_download_notifications_for_a_job(app_,
assert response.status_code == 200
assert response.get_data(as_text=True) == csv_content
assert 'text/csv' in response.headers['Content-Type']
assert 'sample template - 01 January at 11:09.csv"' in response.headers['Content-Disposition']

View File

@@ -793,6 +793,7 @@ def mock_get_job(mocker, job_data):
def _get_job(service_id, job_id):
job_data['id'] = job_id
job_data['service'] = service_id
job_data['created_at'] = str(datetime.utcnow())
return {"data": job_data}
return mocker.patch('app.job_api_client.get_job', side_effect=_get_job)