Don’t skip template page for letters

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.
This commit is contained in:
Chris Hill-Scott
2018-08-07 11:43:33 +01:00
parent dda93e64de
commit 3e14e5e52b
2 changed files with 33 additions and 2 deletions

View File

@@ -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(

View File

@@ -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'],