diff --git a/app/main/forms.py b/app/main/forms.py
index dd4fe0403..c114a46fc 100644
--- a/app/main/forms.py
+++ b/app/main/forms.py
@@ -1287,6 +1287,7 @@ class TemplateAndFoldersSelectionForm(Form):
])
move_to = NestedRadioField(
'Choose a folder',
+ default='',
validators=[
Optional(),
required_for_ops('move-to-new-folder', 'move-to-existing-folder')
diff --git a/app/main/views/templates.py b/app/main/views/templates.py
index c0617dab0..ba12244dc 100644
--- a/app/main/views/templates.py
+++ b/app/main/views/templates.py
@@ -122,6 +122,7 @@ def choose_template(service_id, template_type='all', template_folder_id=None):
len(user_api_client.get_service_ids_for_user(current_user)) > 1
),
)
+ option_hints = {template_folder_id: 'current folder'}
if request.method == 'POST' and templates_and_folders_form.validate_on_submit():
if not can_manage_folders():
@@ -149,7 +150,8 @@ def choose_template(service_id, template_type='all', template_folder_id=None):
template_type=template_type,
search_form=SearchTemplatesForm(),
templates_and_folders_form=templates_and_folders_form,
- move_to_children=templates_and_folders_form.move_to.children()
+ move_to_children=templates_and_folders_form.move_to.children(),
+ option_hints=option_hints
)
diff --git a/app/templates/components/radios.html b/app/templates/components/radios.html
index 84ac4bc2d..c2b8bde5c 100644
--- a/app/templates/components/radios.html
+++ b/app/templates/components/radios.html
@@ -43,11 +43,10 @@
option_hints={},
hide_legend=False
) %}
- {% set disable = [current_option_id] %}
{% call radios_wrapper(
field, hint, disable, option_hints, hide_legend
) %}
- {{ radio_list(child_map[None], child_map, disable) }}
+ {{ radio_list(child_map[None], child_map, disable, option_hints) }}
{% endcall %}
{% endmacro %}
diff --git a/app/templates/views/templates/_move_to.html b/app/templates/views/templates/_move_to.html
index 02c014c09..543905884 100644
--- a/app/templates/views/templates/_move_to.html
+++ b/app/templates/views/templates/_move_to.html
@@ -6,7 +6,7 @@
{% if templates_and_folders_form.move_to.choices and template_list.templates_to_show %}
- {{ radios_nested(templates_and_folders_form.move_to, move_to_children, current_option) }}
+ {{ radios_nested(templates_and_folders_form.move_to, move_to_children, option_hints=option_hints) }}
{{ page_footer('Move', button_name='operation', button_value='move-to-existing-folder') }}
diff --git a/tests/app/main/views/test_template_folders.py b/tests/app/main/views/test_template_folders.py
index 513b0dd66..229884dcf 100644
--- a/tests/app/main/views/test_template_folders.py
+++ b/tests/app/main/views/test_template_folders.py
@@ -882,6 +882,61 @@ def test_should_not_be_able_to_move_to_existing_folder_if_dont_have_permission(
assert mock_move_to_template_folder.called is False
+def test_move_folder_form_shows_current_folder_hint_when_in_a_folder(
+ client_request,
+ service_one,
+ mock_get_service_templates,
+ mock_get_template_folders,
+):
+ service_one['permissions'] += ['edit_folders']
+ mock_get_template_folders.return_value = [
+ {'id': PARENT_FOLDER_ID, 'name': 'parent_folder', 'parent_id': None},
+ {'id': CHILD_FOLDER_ID, 'name': 'child_folder', 'parent_id': PARENT_FOLDER_ID},
+ ]
+ page = client_request.get(
+ 'main.choose_template',
+ service_id=SERVICE_ONE_ID,
+ template_folder_id=PARENT_FOLDER_ID,
+ _test_page_title=False
+ )
+
+ page.find("input", attrs={"name": "move_to", "value": PARENT_FOLDER_ID})
+
+ move_form_labels = page.find('div', id='move_to_folder_radios').find_all('label')
+
+ assert len(move_form_labels) == 3
+ assert normalize_spaces(move_form_labels[0].text) == 'All templates'
+ assert normalize_spaces(move_form_labels[1].text) == 'parent_folder current folder'
+ assert normalize_spaces(move_form_labels[2].text) == 'child_folder'
+
+
+def test_move_folder_form_does_not_show_current_folder_hint_at_the_top_level(
+ client_request,
+ service_one,
+ mock_get_service_templates,
+ mock_get_template_folders,
+):
+ service_one['permissions'] += ['edit_folders']
+ mock_get_template_folders.return_value = [
+ {'id': PARENT_FOLDER_ID, 'name': 'parent_folder', 'parent_id': None},
+ {'id': CHILD_FOLDER_ID, 'name': 'child_folder', 'parent_id': PARENT_FOLDER_ID},
+ ]
+ page = client_request.get(
+ 'main.choose_template',
+ service_id=SERVICE_ONE_ID,
+ _test_page_title=False
+ )
+
+ page.find("input", attrs={"name": "move_to", "value": PARENT_FOLDER_ID})
+
+ move_form_labels = page.find('div', id='move_to_folder_radios').find_all('label')
+
+ assert len(move_form_labels) == 3
+ assert normalize_spaces(move_form_labels[0].text) == 'All templates'
+ assert normalize_spaces(move_form_labels[1].text) == 'parent_folder'
+ assert normalize_spaces(move_form_labels[2].text) == 'child_folder'
+
+
def test_should_be_able_to_move_a_sub_item(
client_request,
service_one,