Remove letters from caseworking view

Because one-off letters aren’t a thing yet there’s no way for
caseworkers to send letters. So showing them letter templates will just
confuse them.
This commit is contained in:
Chris Hill-Scott
2018-07-05 11:53:42 +01:00
parent 0018ecd765
commit 9da9e85293
3 changed files with 100 additions and 21 deletions
+21 -2
View File
@@ -102,6 +102,22 @@ def start_tour(service_id, template_id):
def choose_template(service_id, template_type='all'):
templates = service_api_client.get_service_templates(service_id)['data']
letters_available = (
'letter' in current_service['permissions'] and
current_user.has_permissions('view_activity')
)
available_template_types = list(filter(None, (
'email',
'sms',
'letter' if letters_available else None,
)))
templates = [
template for template in templates
if template['template_type'] in available_template_types
]
has_multiple_template_types = len({
template['template_type'] for template in templates
}) > 1
@@ -112,13 +128,16 @@ def choose_template(service_id, template_type='all'):
('All', 'all'),
('Text message', 'sms'),
('Email', 'email'),
('Letter', 'letter') if 'letter' in current_service['permissions'] else None,
('Letter', 'letter') if letters_available else None,
])
]
templates_on_page = [
template for template in templates
if template_type in ['all', template['template_type']]
if (
template_type in ['all', template['template_type']] and
template['template_type'] in available_template_types
)
]
if current_user.has_permissions('view_activity'):
+68 -18
View File
@@ -19,6 +19,7 @@ from tests import (
from tests.conftest import (
SERVICE_ONE_ID,
active_caseworking_user,
active_user_view_permissions,
mock_get_service_email_template,
mock_get_service_letter_template,
mock_get_service_template,
@@ -29,30 +30,79 @@ from tests.conftest import service_one as create_sample_service
from tests.conftest import single_letter_contact_block
@pytest.mark.parametrize('extra_args, expected_nav_links, expected_templates', [
(
{},
['Text message', 'Email'],
['sms_template_one', 'sms_template_two', 'email_template_one', 'email_template_two']
),
(
{'template_type': 'sms'},
['All', 'Email'],
['sms_template_one', 'sms_template_two'],
),
(
{'template_type': 'email'},
['All', 'Text message'],
['email_template_one', 'email_template_two'],
),
])
@pytest.mark.parametrize(
'user, expected_page_title, extra_args, expected_nav_links, expected_templates',
[
(
active_user_view_permissions,
'Templates',
{},
['Text message', 'Email', 'Letter'],
[
'sms_template_one',
'sms_template_two',
'email_template_one',
'email_template_two',
'letter_template_one',
'letter_template_two',
]
),
(
active_user_view_permissions,
'Templates',
{'template_type': 'sms'},
['All', 'Email', 'Letter'],
['sms_template_one', 'sms_template_two'],
),
(
active_user_view_permissions,
'Templates',
{'template_type': 'email'},
['All', 'Text message', 'Letter'],
['email_template_one', 'email_template_two'],
),
(
active_user_view_permissions,
'Templates',
{'template_type': 'letter'},
['All', 'Text message', 'Email'],
['letter_template_one', 'letter_template_two'],
),
(
active_caseworking_user,
'Choose a template',
{},
['Text message', 'Email'],
[
'sms_template_one',
'sms_template_two',
'email_template_one',
'email_template_two',
],
),
(
active_caseworking_user,
'Choose a template',
{'template_type': 'email'},
['All', 'Text message'],
['email_template_one', 'email_template_two'],
),
]
)
def test_should_show_page_for_choosing_a_template(
client_request,
mock_get_service_templates,
extra_args,
expected_nav_links,
expected_templates,
service_one,
mocker,
fake_uuid,
user,
expected_page_title,
):
mocker.patch('app.user_api_client.get_user', return_value=user(fake_uuid))
service_one['permissions'].append('letter')
page = client_request.get(
'main.choose_template',
@@ -60,7 +110,7 @@ def test_should_show_page_for_choosing_a_template(
**extra_args
)
assert normalize_spaces(page.select('h1')[0].text) == 'Templates'
assert normalize_spaces(page.select_one('h1').text) == expected_page_title
links_in_page = page.select('.pill a')
+11 -1
View File
@@ -953,6 +953,8 @@ def mock_get_service_templates(mocker):
uuid2 = str(generate_uuid())
uuid3 = str(generate_uuid())
uuid4 = str(generate_uuid())
uuid5 = str(generate_uuid())
uuid6 = str(generate_uuid())
def _create(service_id):
return {'data': [
@@ -969,7 +971,15 @@ def mock_get_service_templates(mocker):
template_json(
service_id, uuid4, "email_template_two", "email", "email template two content",
subject='email template two subject',
)
),
template_json(
service_id, uuid5, "letter_template_one", "letter", "letter template one content",
subject='letter template one subject',
),
template_json(
service_id, uuid6, "letter_template_two", "letter", "letter template two content",
subject='letter template two subject',
),
]}
return mocker.patch(