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'):
|
def choose_template(service_id, template_type='all'):
|
||||||
templates = service_api_client.get_service_templates(service_id)['data']
|
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({
|
has_multiple_template_types = len({
|
||||||
template['template_type'] for template in templates
|
template['template_type'] for template in templates
|
||||||
}) > 1
|
}) > 1
|
||||||
@@ -112,13 +128,16 @@ def choose_template(service_id, template_type='all'):
|
|||||||
('All', 'all'),
|
('All', 'all'),
|
||||||
('Text message', 'sms'),
|
('Text message', 'sms'),
|
||||||
('Email', 'email'),
|
('Email', 'email'),
|
||||||
('Letter', 'letter') if 'letter' in current_service['permissions'] else None,
|
('Letter', 'letter') if letters_available else None,
|
||||||
])
|
])
|
||||||
]
|
]
|
||||||
|
|
||||||
templates_on_page = [
|
templates_on_page = [
|
||||||
template for template in templates
|
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'):
|
if current_user.has_permissions('view_activity'):
|
||||||
|
|||||||
@@ -19,6 +19,7 @@ from tests import (
|
|||||||
from tests.conftest import (
|
from tests.conftest import (
|
||||||
SERVICE_ONE_ID,
|
SERVICE_ONE_ID,
|
||||||
active_caseworking_user,
|
active_caseworking_user,
|
||||||
|
active_user_view_permissions,
|
||||||
mock_get_service_email_template,
|
mock_get_service_email_template,
|
||||||
mock_get_service_letter_template,
|
mock_get_service_letter_template,
|
||||||
mock_get_service_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
|
from tests.conftest import single_letter_contact_block
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.parametrize('extra_args, expected_nav_links, expected_templates', [
|
@pytest.mark.parametrize(
|
||||||
(
|
'user, expected_page_title, extra_args, expected_nav_links, expected_templates',
|
||||||
{},
|
[
|
||||||
['Text message', 'Email'],
|
(
|
||||||
['sms_template_one', 'sms_template_two', 'email_template_one', 'email_template_two']
|
active_user_view_permissions,
|
||||||
),
|
'Templates',
|
||||||
(
|
{},
|
||||||
{'template_type': 'sms'},
|
['Text message', 'Email', 'Letter'],
|
||||||
['All', 'Email'],
|
[
|
||||||
['sms_template_one', 'sms_template_two'],
|
'sms_template_one',
|
||||||
),
|
'sms_template_two',
|
||||||
(
|
'email_template_one',
|
||||||
{'template_type': 'email'},
|
'email_template_two',
|
||||||
['All', 'Text message'],
|
'letter_template_one',
|
||||||
['email_template_one', 'email_template_two'],
|
'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(
|
def test_should_show_page_for_choosing_a_template(
|
||||||
client_request,
|
client_request,
|
||||||
mock_get_service_templates,
|
mock_get_service_templates,
|
||||||
extra_args,
|
extra_args,
|
||||||
expected_nav_links,
|
expected_nav_links,
|
||||||
expected_templates,
|
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(
|
page = client_request.get(
|
||||||
'main.choose_template',
|
'main.choose_template',
|
||||||
@@ -60,7 +110,7 @@ def test_should_show_page_for_choosing_a_template(
|
|||||||
**extra_args
|
**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')
|
links_in_page = page.select('.pill a')
|
||||||
|
|
||||||
|
|||||||
+11
-1
@@ -953,6 +953,8 @@ def mock_get_service_templates(mocker):
|
|||||||
uuid2 = str(generate_uuid())
|
uuid2 = str(generate_uuid())
|
||||||
uuid3 = str(generate_uuid())
|
uuid3 = str(generate_uuid())
|
||||||
uuid4 = str(generate_uuid())
|
uuid4 = str(generate_uuid())
|
||||||
|
uuid5 = str(generate_uuid())
|
||||||
|
uuid6 = str(generate_uuid())
|
||||||
|
|
||||||
def _create(service_id):
|
def _create(service_id):
|
||||||
return {'data': [
|
return {'data': [
|
||||||
@@ -969,7 +971,15 @@ def mock_get_service_templates(mocker):
|
|||||||
template_json(
|
template_json(
|
||||||
service_id, uuid4, "email_template_two", "email", "email template two content",
|
service_id, uuid4, "email_template_two", "email", "email template two content",
|
||||||
subject='email template two subject',
|
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(
|
return mocker.patch(
|
||||||
|
|||||||
Reference in New Issue
Block a user