mirror of
https://github.com/GSA/notifications-admin.git
synced 2026-09-11 10:28:41 -04:00
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:
@@ -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'):
|
||||
|
||||
@@ -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
@@ -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(
|
||||
|
||||
Reference in New Issue
Block a user