mirror of
https://github.com/GSA/notifications-admin.git
synced 2026-07-16 19:30:13 -04:00
Merge pull request #2488 from alphagov/copy-template-name
Put ‘copy’ at end of new template name
This commit is contained in:
@@ -318,7 +318,7 @@ def copy_template(service_id, template_id):
|
||||
return add_service_template(service_id, template['template_type'])
|
||||
|
||||
template['template_content'] = template['content']
|
||||
template['name'] = 'Copy of ‘{}’'.format(template['name'])
|
||||
template['name'] = _get_template_copy_name(template, current_service.all_templates)
|
||||
form = form_objects[template['template_type']](**template)
|
||||
|
||||
return render_template(
|
||||
@@ -330,6 +330,20 @@ def copy_template(service_id, template_id):
|
||||
)
|
||||
|
||||
|
||||
def _get_template_copy_name(template, existing_templates):
|
||||
|
||||
template_names = [existing['name'] for existing in existing_templates]
|
||||
|
||||
for index in reversed(range(1, 10)):
|
||||
if '{} (copy {})'.format(template['name'], index) in template_names:
|
||||
return '{} (copy {})'.format(template['name'], index + 1)
|
||||
|
||||
if '{} (copy)'.format(template['name']) in template_names:
|
||||
return '{} (copy 2)'.format(template['name'])
|
||||
|
||||
return '{} (copy)'.format(template['name'])
|
||||
|
||||
|
||||
@main.route("/services/<service_id>/templates/action-blocked/<notification_type>/<return_to>/<template_id>")
|
||||
@login_required
|
||||
@user_has_permissions('manage_templates')
|
||||
|
||||
@@ -823,11 +823,44 @@ def test_choose_a_template_to_copy(
|
||||
)
|
||||
|
||||
|
||||
@pytest.mark.parametrize('existing_template_names, expected_name', (
|
||||
(
|
||||
['Two week reminder'],
|
||||
'Two week reminder (copy)'
|
||||
),
|
||||
(
|
||||
['Two week reminder (copy)'],
|
||||
'Two week reminder (copy 2)'
|
||||
),
|
||||
(
|
||||
['Two week reminder', 'Two week reminder (copy)'],
|
||||
'Two week reminder (copy 2)'
|
||||
),
|
||||
(
|
||||
['Two week reminder (copy 8)', 'Two week reminder (copy 9)'],
|
||||
'Two week reminder (copy 10)'
|
||||
),
|
||||
(
|
||||
['Two week reminder (copy)', 'Two week reminder (copy 9)'],
|
||||
'Two week reminder (copy 10)'
|
||||
),
|
||||
(
|
||||
['Two week reminder (copy)', 'Two week reminder (copy 10)'],
|
||||
'Two week reminder (copy 2)'
|
||||
),
|
||||
))
|
||||
def test_load_edit_template_with_copy_of_template(
|
||||
client_request,
|
||||
mock_get_service_templates,
|
||||
mock_get_service_email_template,
|
||||
mock_get_non_empty_organisations_and_services_for_user,
|
||||
existing_template_names,
|
||||
expected_name,
|
||||
):
|
||||
mock_get_service_templates.side_effect = lambda service_id: {'data': [
|
||||
{'name': existing_template_name, 'template_type': 'sms'}
|
||||
for existing_template_name in existing_template_names
|
||||
]}
|
||||
page = client_request.get(
|
||||
'main.copy_template',
|
||||
service_id=SERVICE_ONE_ID,
|
||||
@@ -838,7 +871,7 @@ def test_load_edit_template_with_copy_of_template(
|
||||
assert page.select_one('form')['method'] == 'post'
|
||||
|
||||
assert page.select_one('input')['value'] == (
|
||||
'Copy of ‘Two week reminder’'
|
||||
expected_name
|
||||
)
|
||||
assert page.select_one('textarea').text == (
|
||||
'Your ((thing)) is due soon'
|
||||
|
||||
Reference in New Issue
Block a user