mirror of
https://github.com/GSA/notifications-admin.git
synced 2026-09-09 08:29:49 -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'])
|
return add_service_template(service_id, template['template_type'])
|
||||||
|
|
||||||
template['template_content'] = template['content']
|
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)
|
form = form_objects[template['template_type']](**template)
|
||||||
|
|
||||||
return render_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>")
|
@main.route("/services/<service_id>/templates/action-blocked/<notification_type>/<return_to>/<template_id>")
|
||||||
@login_required
|
@login_required
|
||||||
@user_has_permissions('manage_templates')
|
@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(
|
def test_load_edit_template_with_copy_of_template(
|
||||||
client_request,
|
client_request,
|
||||||
|
mock_get_service_templates,
|
||||||
mock_get_service_email_template,
|
mock_get_service_email_template,
|
||||||
mock_get_non_empty_organisations_and_services_for_user,
|
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(
|
page = client_request.get(
|
||||||
'main.copy_template',
|
'main.copy_template',
|
||||||
service_id=SERVICE_ONE_ID,
|
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('form')['method'] == 'post'
|
||||||
|
|
||||||
assert page.select_one('input')['value'] == (
|
assert page.select_one('input')['value'] == (
|
||||||
'Copy of ‘Two week reminder’'
|
expected_name
|
||||||
)
|
)
|
||||||
assert page.select_one('textarea').text == (
|
assert page.select_one('textarea').text == (
|
||||||
'Your ((thing)) is due soon'
|
'Your ((thing)) is due soon'
|
||||||
|
|||||||
Reference in New Issue
Block a user