mirror of
https://github.com/GSA/notifications-admin.git
synced 2026-08-15 23:38:52 -04:00
Reuse TemplateList class when deleting a folder
Part of moving "get_template_folders" et al. into TemplateList so we can cache it more effectively. This is slightly less efficient as iterating a TemplateList will instantiate an object for each item in the folder; but the difference is minimal. Note that: - The default template_type for TemplateList is "all". - We need to pass realistic template "JSON" in the test now.
This commit is contained in:
@@ -470,10 +470,9 @@ def manage_template_folder(service_id, template_folder_id):
|
||||
@user_has_permissions('manage_templates')
|
||||
def delete_template_folder(service_id, template_folder_id):
|
||||
template_folder = current_service.get_template_folder_with_user_permission_or_403(template_folder_id, current_user)
|
||||
template_list = TemplateList(service=current_service, template_folder_id=template_folder_id)
|
||||
|
||||
if len(current_service.get_template_folders_and_templates(
|
||||
template_type="all", template_folder_id=template_folder_id
|
||||
)) > 0:
|
||||
if not template_list.folder_is_empty:
|
||||
flash("You must empty this folder before you can delete it", 'info')
|
||||
return redirect(
|
||||
url_for(
|
||||
|
||||
@@ -650,12 +650,6 @@ class Service(JSONModel, SortByNameMixin):
|
||||
template,
|
||||
]
|
||||
|
||||
def get_template_folders_and_templates(self, template_type, template_folder_id):
|
||||
return (
|
||||
self.get_templates(template_type, template_folder_id)
|
||||
+ self.get_template_folders(template_type, template_folder_id)
|
||||
)
|
||||
|
||||
@property
|
||||
def count_of_templates_and_folders(self):
|
||||
return len(self.all_templates + self.all_template_folders)
|
||||
|
||||
@@ -5,7 +5,7 @@ from flask import abort, url_for
|
||||
from notifications_python_client.errors import HTTPError
|
||||
|
||||
from app.models.user import User
|
||||
from tests import sample_uuid
|
||||
from tests import sample_uuid, template_json
|
||||
from tests.conftest import (
|
||||
SERVICE_ONE_ID,
|
||||
TEMPLATE_ONE_ID,
|
||||
@@ -968,7 +968,7 @@ def test_delete_template_folder_should_detect_non_empty_folder_on_get(
|
||||
]
|
||||
mocker.patch(
|
||||
'app.models.service.Service.get_templates',
|
||||
return_value=[{'id': template_id, 'name': 'template'}],
|
||||
return_value=[template_json(service_one['id'], template_id)],
|
||||
)
|
||||
client_request.get(
|
||||
'main.delete_template_folder', service_id=service_one['id'],
|
||||
|
||||
Reference in New Issue
Block a user