From 3e14e5e52b0e2cf62bdcc3d4298ce3098e54afe5 Mon Sep 17 00:00:00 2001 From: Chris Hill-Scott Date: Tue, 7 Aug 2018 11:43:33 +0100 Subject: [PATCH] =?UTF-8?q?Don=E2=80=99t=20skip=20template=20page=20for=20?= =?UTF-8?q?letters?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit It’s too jarring to go straight from the list of templates to the upload addresses page. So while we don’t have sending a one-off letter as a thing, let’s keep the template page. --- app/main/views/templates.py | 5 +++-- tests/app/main/views/test_templates.py | 30 ++++++++++++++++++++++++++ 2 files changed, 33 insertions(+), 2 deletions(-) diff --git a/app/main/views/templates.py b/app/main/views/templates.py index 1270f38eb..bbc501e41 100644 --- a/app/main/views/templates.py +++ b/app/main/views/templates.py @@ -48,14 +48,15 @@ page_headings = { @login_required @user_has_permissions() def view_template(service_id, template_id): + template = service_api_client.get_service_template(service_id, str(template_id))['data'] if ( current_user.has_permissions('send_messages') and - not current_user.has_permissions('manage_templates', 'manage_api_keys') + not current_user.has_permissions('manage_templates', 'manage_api_keys') and + template['template_type'] != 'letter' ): return redirect(url_for( '.send_one_off', service_id=service_id, template_id=template_id )) - template = service_api_client.get_service_template(service_id, str(template_id))['data'] if template["template_type"] == "letter": letter_contact_details = service_api_client.get_letter_contacts(service_id) default_letter_contact_block_id = next( diff --git a/tests/app/main/views/test_templates.py b/tests/app/main/views/test_templates.py index a4e1f5203..e3ddec5fc 100644 --- a/tests/app/main/views/test_templates.py +++ b/tests/app/main/views/test_templates.py @@ -167,6 +167,7 @@ def test_should_show_page_for_one_template( def test_caseworker_redirected_to_one_off( client_request, mock_get_service_templates, + mock_get_service_template, mocker, fake_uuid, ): @@ -190,6 +191,7 @@ def test_caseworker_redirected_to_one_off( def test_user_with_only_send_and_view_redirected_to_one_off( client_request, mock_get_service_templates, + mock_get_service_template, active_user_with_permissions, mocker, fake_uuid, @@ -213,6 +215,34 @@ def test_user_with_only_send_and_view_redirected_to_one_off( ) +@pytest.mark.parametrize('permissions', ( + {'send_messages', 'view_activity'}, + {'send_messages'}, + {'view_activity'}, + {}, +)) +def test_user_with_only_send_and_view_sees_letter_page( + client_request, + mock_get_service_templates, + mock_get_service_letter_template, + single_letter_contact_block, + mock_has_jobs, + active_user_with_permissions, + mocker, + fake_uuid, + permissions, +): + mocker.patch('app.main.views.templates.get_page_count_for_letter', return_value=1) + active_user_with_permissions._permissions[SERVICE_ONE_ID] = permissions + client_request.login(active_user_with_permissions) + page = client_request.get( + 'main.view_template', + service_id=SERVICE_ONE_ID, + template_id=fake_uuid, + ) + assert page.select_one('h1').text.strip() == 'Two week reminder' + + @pytest.mark.parametrize('permissions, links_to_be_shown, permissions_warning_to_be_shown', [ ( ['view_activity'],