Redirect to parent after deleting a folder

You lose your place if, after deleting something that’s deeply nested,
you return to the root level.
This commit is contained in:
Chris Hill-Scott
2018-11-20 10:44:09 +00:00
parent 4bccce4772
commit 77529f4191
2 changed files with 13 additions and 6 deletions

View File

@@ -427,7 +427,7 @@ def delete_template_folder(service_id, template_folder_id):
template_folder_api_client.delete_template_folder(current_service.id, template_folder_id)
return redirect(
url_for('.choose_template', service_id=service_id)
url_for('.choose_template', service_id=service_id, template_folder_id=template_folder['parent_id'])
)
except HTTPError as e:
msg = "Folder is not empty"

View File

@@ -487,11 +487,15 @@ def test_delete_template_folder_should_detect_non_empty_folder_on_get(
)
def test_delete_folder(client_request, service_one, mock_get_template_folders, mocker):
@pytest.mark.parametrize('parent_folder_id', (
None,
PARENT_FOLDER_ID,
))
def test_delete_folder(client_request, service_one, mock_get_template_folders, mocker, parent_folder_id):
mock_delete = mocker.patch('app.template_folder_api_client.delete_template_folder')
folder_id = str(uuid.uuid4())
mock_get_template_folders.side_effect = [[
{'id': folder_id, 'name': 'sacrifice', 'parent_id': None},
{'id': folder_id, 'name': 'sacrifice', 'parent_id': parent_folder_id},
], []]
mocker.patch(
'app.models.service.Service.get_templates',
@@ -503,9 +507,12 @@ def test_delete_folder(client_request, service_one, mock_get_template_folders, m
'main.delete_template_folder',
service_id=service_one['id'],
template_folder_id=folder_id,
_expected_redirect=url_for("main.choose_template",
service_id=service_one['id'],
_external=True)
_expected_redirect=url_for(
"main.choose_template",
service_id=service_one['id'],
template_folder_id=parent_folder_id,
_external=True,
)
)
mock_delete.assert_called_once_with(service_one['id'], folder_id)