mirror of
https://github.com/GSA/notifications-admin.git
synced 2026-08-24 16:24:08 -04:00
Merge pull request #2506 from alphagov/fix_delete_folder_button_breadcrumb
Fix breadcrumbs on manage_template_folder page
This commit is contained in:
@@ -395,7 +395,8 @@ def manage_template_folder(service_id, template_folder_id):
|
|||||||
form=form,
|
form=form,
|
||||||
template_folder_path=current_service.get_template_folder_path(template_folder_id),
|
template_folder_path=current_service.get_template_folder_path(template_folder_id),
|
||||||
current_service_id=current_service.id,
|
current_service_id=current_service.id,
|
||||||
template_folder_id=template_folder_id
|
template_folder_id=template_folder_id,
|
||||||
|
template_type="all"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@@ -447,7 +448,9 @@ def delete_template_folder(service_id, template_folder_id):
|
|||||||
form=form,
|
form=form,
|
||||||
template_folder_path=template_folder_path,
|
template_folder_path=template_folder_path,
|
||||||
current_service_id=current_service.id,
|
current_service_id=current_service.id,
|
||||||
template_folder_id=template_folder_id
|
template_folder_id=template_folder_id,
|
||||||
|
template_type="all",
|
||||||
|
delete_folder=True
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -22,18 +22,21 @@ Templates
|
|||||||
{% endfor %}
|
{% endfor %}
|
||||||
</h1>
|
</h1>
|
||||||
|
|
||||||
|
{% if not delete_folder %}
|
||||||
|
{% call form_wrapper() %}
|
||||||
|
{{ textbox(form.name) }}
|
||||||
|
{{ page_footer(
|
||||||
|
'Save',
|
||||||
|
delete_link=url_for(
|
||||||
|
'.delete_template_folder',
|
||||||
|
service_id=current_service_id,
|
||||||
|
template_folder_id=template_folder_id
|
||||||
|
),
|
||||||
|
delete_link_text="Delete this folder") }}
|
||||||
|
|
||||||
{% call form_wrapper() %}
|
{% endcall %}
|
||||||
{{ textbox(form.name) }}
|
{% else %}
|
||||||
{{ page_footer(
|
<a href="{{url_for('.manage_template_folder', service_id=current_service.id, template_folder_id=template_folder_id)}}">Back to manage folder page</a>
|
||||||
'Save',
|
{% endif %}
|
||||||
delete_link=url_for(
|
|
||||||
'.delete_template_folder',
|
|
||||||
service_id=current_service_id,
|
|
||||||
template_folder_id=template_folder_id
|
|
||||||
),
|
|
||||||
delete_link_text="Delete this folder") }}
|
|
||||||
|
|
||||||
{% endcall %}
|
|
||||||
|
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|||||||
@@ -378,6 +378,60 @@ def test_rename_folder(client_request, service_one, mock_get_template_folders, m
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
def test_delete_template_folder_should_request_confirmation(
|
||||||
|
client_request, service_one, mock_get_template_folders, mocker
|
||||||
|
):
|
||||||
|
service_one['permissions'] += ['edit_folders']
|
||||||
|
folder_id = str(uuid.uuid4())
|
||||||
|
mock_get_template_folders.side_effect = [[
|
||||||
|
{'id': folder_id, 'name': 'sacrifice', 'parent_id': None},
|
||||||
|
], []]
|
||||||
|
mocker.patch(
|
||||||
|
'app.models.service.Service.get_templates',
|
||||||
|
return_value=[],
|
||||||
|
)
|
||||||
|
page = client_request.get(
|
||||||
|
'main.delete_template_folder', service_id=service_one['id'],
|
||||||
|
template_folder_id=folder_id
|
||||||
|
)
|
||||||
|
assert normalize_spaces(page.select('.banner-dangerous')[0].text) == (
|
||||||
|
'Are you sure you want to delete the ‘sacrifice’ folder? '
|
||||||
|
'Yes, delete'
|
||||||
|
)
|
||||||
|
|
||||||
|
assert len(page.select('label')) == 0
|
||||||
|
assert len(page.select('button')) == 1
|
||||||
|
assert "Back to manage folder page" in page.text
|
||||||
|
|
||||||
|
|
||||||
|
def test_delete_template_folder_should_detect_non_empty_folder_on_get(
|
||||||
|
client_request, service_one, mock_get_template_folders, mocker
|
||||||
|
):
|
||||||
|
service_one['permissions'] += ['edit_folders']
|
||||||
|
folder_id = str(uuid.uuid4())
|
||||||
|
template_id = str(uuid.uuid4())
|
||||||
|
mock_get_template_folders.side_effect = [
|
||||||
|
[{'id': folder_id, 'name': "can't touch me", 'parent_id': None}],
|
||||||
|
[]
|
||||||
|
]
|
||||||
|
mocker.patch(
|
||||||
|
'app.models.service.Service.get_templates',
|
||||||
|
return_value=[{'id': template_id, 'name': 'template'}],
|
||||||
|
)
|
||||||
|
client_request.get(
|
||||||
|
'main.delete_template_folder', service_id=service_one['id'],
|
||||||
|
template_folder_id=folder_id,
|
||||||
|
_expected_redirect=url_for(
|
||||||
|
"main.choose_template",
|
||||||
|
template_type="all",
|
||||||
|
service_id=service_one['id'],
|
||||||
|
template_folder_id=folder_id,
|
||||||
|
_external=True
|
||||||
|
),
|
||||||
|
_expected_status=302
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
def test_delete_folder(client_request, service_one, mock_get_template_folders, mocker):
|
def test_delete_folder(client_request, service_one, mock_get_template_folders, mocker):
|
||||||
mock_delete = mocker.patch('app.template_folder_api_client.delete_template_folder')
|
mock_delete = mocker.patch('app.template_folder_api_client.delete_template_folder')
|
||||||
folder_id = str(uuid.uuid4())
|
folder_id = str(uuid.uuid4())
|
||||||
|
|||||||
Reference in New Issue
Block a user