From 7d57a4d9b86e5bf93422ca2d93b12d2bbf02055c Mon Sep 17 00:00:00 2001 From: Chris Hill-Scott Date: Mon, 2 Mar 2020 13:48:32 +0000 Subject: [PATCH 1/4] Redirect the old jobs URL --- app/main/views/jobs.py | 24 +----- tests/app/main/views/test_jobs.py | 134 +++--------------------------- 2 files changed, 15 insertions(+), 143 deletions(-) diff --git a/app/main/views/jobs.py b/app/main/views/jobs.py index 375bc3523..25bf8a884 100644 --- a/app/main/views/jobs.py +++ b/app/main/views/jobs.py @@ -42,26 +42,10 @@ from app.utils import ( @main.route("/services//jobs") @user_has_permissions() def view_jobs(service_id): - jobs = current_service.get_page_of_jobs(page=request.args.get('page')) - - prev_page = None - if jobs.prev_page: - prev_page = generate_previous_dict('main.view_jobs', service_id, jobs.current_page) - next_page = None - if jobs.next_page: - next_page = generate_next_dict('main.view_jobs', service_id, jobs.current_page) - - return render_template( - 'views/jobs/jobs.html', - jobs=jobs, - prev_page=prev_page, - next_page=next_page, - show_scheduled_jobs=( - jobs.current_page == 1 - and not current_user.has_permissions('view_activity') - and current_service.scheduled_jobs - ), - ) + return redirect(url_for( + 'main.uploads', + service_id=current_service.id, + )) @main.route("/services//jobs/") diff --git a/tests/app/main/views/test_jobs.py b/tests/app/main/views/test_jobs.py index c4ea99aab..8a81153b4 100644 --- a/tests/app/main/views/test_jobs.py +++ b/tests/app/main/views/test_jobs.py @@ -18,131 +18,19 @@ from tests.conftest import ( ) -@pytest.mark.parametrize('user, expected_rows', [ - (create_active_user_with_permissions(), ( - ( - 'File Status' - ), - ( - 'export 1/1/2016.xls ' - 'Sent today at 12:12pm 1 sending 0 delivered 0 failed' - ), - ( - 'all email addresses.xlsx ' - 'Sent today at 12:12pm 1 sending 0 delivered 0 failed' - ), - ( - 'applicants.ods ' - 'Sent today at 12:12pm 1 sending 0 delivered 0 failed' - ), - ( - 'thisisatest.csv ' - 'Sent today at 12:12pm 1 sending 0 delivered 0 failed' - ), - )), - (create_active_caseworking_user(), ( - ( - 'File Messages to be sent' - ), - ( - 'even_later.csv ' - 'Sending 1 January 2016 at 11:09pm 1' - ), - ( - 'send_me_later.csv ' - 'Sending 1 January 2016 at 11:09am 1' - ), - ( - 'File Status' - ), - ( - 'export 1/1/2016.xls ' - 'Sent today at 12:12pm 1 sending 0 delivered 0 failed' - ), - ( - 'all email addresses.xlsx ' - 'Sent today at 12:12pm 1 sending 0 delivered 0 failed' - ), - ( - 'applicants.ods ' - 'Sent today at 12:12pm 1 sending 0 delivered 0 failed' - ), - ( - 'thisisatest.csv ' - 'Sent today at 12:12pm 1 sending 0 delivered 0 failed' - ), - )), -]) -@freeze_time("2012-12-12 12:12") -def test_jobs_page_shows_scheduled_jobs_if_user_doesnt_have_dashboard( +def test_old_jobs_hub_redirects( client_request, - service_one, - active_user_with_permissions, - mock_get_jobs, - user, - expected_rows, ): - client_request.login(user) - page = client_request.get('main.view_jobs', service_id=service_one['id']) - - for index, row in enumerate(expected_rows): - assert normalize_spaces(page.select('tr')[index].text) == row - - -@pytest.mark.parametrize('user', [ - create_active_user_with_permissions(), - create_active_caseworking_user(), -]) -def test_get_jobs_shows_page_links( - client_request, - active_user_with_permissions, - mock_get_jobs, - user, -): - client_request.login(user) - page = client_request.get('main.view_jobs', service_id=SERVICE_ONE_ID) - - assert 'Next page' in page.find('li', {'class': 'next-page'}).text - assert 'Previous page' in page.find('li', {'class': 'previous-page'}).text - - -@pytest.mark.parametrize('user', [ - create_active_user_with_permissions(), - create_active_caseworking_user(), -]) -@freeze_time("2012-12-12 12:12") -def test_jobs_page_doesnt_show_scheduled_on_page_2( - client_request, - service_one, - active_user_with_permissions, - mock_get_jobs, - user, -): - client_request.login(user) - page = client_request.get('main.view_jobs', service_id=service_one['id'], page=2) - - for index, row in enumerate(( - ( - 'File Status' - ), - ( - 'export 1/1/2016.xls ' - 'Sent today at 12:12pm 1 sending 0 delivered 0 failed' - ), - ( - 'all email addresses.xlsx ' - 'Sent today at 12:12pm 1 sending 0 delivered 0 failed' - ), - ( - 'applicants.ods ' - 'Sent today at 12:12pm 1 sending 0 delivered 0 failed' - ), - ( - 'thisisatest.csv ' - 'Sent today at 12:12pm 1 sending 0 delivered 0 failed' - ), - )): - assert normalize_spaces(page.select('tr')[index].text) == row + client_request.get( + 'main.view_jobs', + service_id=SERVICE_ONE_ID, + _expected_status=302, + _expected_redirect=url_for( + 'main.uploads', + service_id=SERVICE_ONE_ID, + _external=True, + ) + ) @pytest.mark.parametrize('user', [ From 481c9dba178bc51ad9fb3d847f9118bcd735816b Mon Sep 17 00:00:00 2001 From: Chris Hill-Scott Date: Mon, 2 Mar 2020 14:07:25 +0000 Subject: [PATCH 2/4] Remove unused model property --- app/models/service.py | 4 ---- 1 file changed, 4 deletions(-) diff --git a/app/models/service.py b/app/models/service.py index 041ef5e5a..20c841c33 100644 --- a/app/models/service.py +++ b/app/models/service.py @@ -498,10 +498,6 @@ class Service(JSONModel): key=lambda folder: folder['name'].lower(), ) - @property - def can_upload_letters(self): - return self.has_permission('letter') and self.has_permission('upload_letters') - @cached_property def all_template_folder_ids(self): return {folder['id'] for folder in self.all_template_folders} From d83e7a8e9f277c7b6d78b9ed6ad2052302bed353 Mon Sep 17 00:00:00 2001 From: Chris Hill-Scott Date: Mon, 2 Mar 2020 14:26:04 +0000 Subject: [PATCH 3/4] Tidy up the jobs template --- app/templates/views/jobs/jobs.html | 20 ++++++++------------ tests/app/main/views/test_uploads.py | 4 ++-- 2 files changed, 10 insertions(+), 14 deletions(-) diff --git a/app/templates/views/jobs/jobs.html b/app/templates/views/jobs/jobs.html index 0b88d0c34..4f4533dad 100644 --- a/app/templates/views/jobs/jobs.html +++ b/app/templates/views/jobs/jobs.html @@ -9,26 +9,22 @@ {% block maincolumn_content %}

Uploads

- {% if show_scheduled_jobs %} - {% with hide_heading = True %} - {% include 'views/jobs/_scheduled.html' %} - {% endwith %} - {% endif %} {% if jobs %} {% include 'views/dashboard/_jobs.html' %} - {% endif %} - {% if not jobs and not show_scheduled_jobs %} + {% else %}

You have not uploaded any files recently.

- {% if current_service.has_permission('upload_letters') %} + {% if current_user.has_permissions('send_messages') %} + {% if current_service.has_permission('letter') %} +

+ Upload a letter and Notify will print, pack and post it for you. +

+ {% endif %}

- Upload a letter and Notify will print, pack and post it for you. + To upload a list of contact details, first choose a template.

{% endif %} -

- To upload a list of contact details, first choose a template. -

{% endif %} {{ previous_next_navigation(prev_page, next_page) }} {% if current_user.has_permissions('send_messages') %} diff --git a/tests/app/main/views/test_uploads.py b/tests/app/main/views/test_uploads.py index 1491b45d6..2c63839e8 100644 --- a/tests/app/main/views/test_uploads.py +++ b/tests/app/main/views/test_uploads.py @@ -65,11 +65,11 @@ def test_all_users_have_upload_contact_list( @pytest.mark.parametrize('extra_permissions, expected_empty_message', ( - (['letter'], ( + ([], ( 'You have not uploaded any files recently. ' 'To upload a list of contact details, first choose a template.' )), - (['letter', 'upload_letters'], ( + (['letter'], ( 'You have not uploaded any files recently. ' 'Upload a letter and Notify will print, pack and post it for you. ' 'To upload a list of contact details, first choose a template.' From 38b4b4d994d39a5b13c85b307522474ca34d50a6 Mon Sep 17 00:00:00 2001 From: Chris Hill-Scott Date: Wed, 18 Mar 2020 13:45:51 +0000 Subject: [PATCH 4/4] Fix misaligned upload button when no letter permission We should add spacing to the right, so if the first button is missing the second one still sits flush-left. --- app/templates/views/jobs/jobs.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/templates/views/jobs/jobs.html b/app/templates/views/jobs/jobs.html index 4f4533dad..27b5fb4b3 100644 --- a/app/templates/views/jobs/jobs.html +++ b/app/templates/views/jobs/jobs.html @@ -34,14 +34,14 @@ "element": "a", "text": "Upload a letter", "href": url_for('.upload_letter', service_id=current_service.id), - "classes": "govuk-button--secondary" + "classes": "govuk-button--secondary govuk-!-margin-right-3" }) }} {% endif %} {{ govukButton({ "element": "a", "text": "Upload an emergency contact list", "href": url_for('.upload_contact_list', service_id=current_service.id), - "classes": "govuk-button--secondary govuk-!-margin-left-3" + "classes": "govuk-button--secondary" }) }}
{% endif %}