From 6638a0aecb77a7f5959f1811724e26eb1277afb3 Mon Sep 17 00:00:00 2001 From: Alexey Bezhan Date: Wed, 6 Mar 2019 14:57:51 +0000 Subject: [PATCH] Add user_id argument to TemplateList to allow filtering folders by user Switches TemplateList to use get_user_template_folders by setting the user_id. --- app/models/template_list.py | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/app/models/template_list.py b/app/models/template_list.py index d3b1ee2b6..e8bf0a9e2 100644 --- a/app/models/template_list.py +++ b/app/models/template_list.py @@ -5,26 +5,28 @@ class TemplateList(): service, template_type='all', template_folder_id=None, + user_id=None, ): self.service = service self.template_type = template_type self.template_folder_id = template_folder_id + self.user_id = user_id def __iter__(self): for item in self.get_templates_and_folders( - self.template_type, self.template_folder_id, ancestors=[] + self.template_type, self.template_folder_id, self.user_id, ancestors=[] ): yield item - def get_templates_and_folders(self, template_type, template_folder_id, ancestors): + def get_templates_and_folders(self, template_type, template_folder_id, user_id, ancestors): for item in self.service.get_template_folders( - template_type, template_folder_id + template_type, template_folder_id, user_id, ): yield TemplateListFolder( item, folders=self.service.get_template_folders( - template_type, item['id'] + template_type, item['id'], user_id ), templates=self.service.get_templates( template_type, item['id'] @@ -33,7 +35,7 @@ class TemplateList(): service_id=self.service.id, ) for sub_item in self.get_templates_and_folders( - template_type, item['id'], ancestors + [item] + template_type, item['id'], user_id, ancestors + [item] ): yield sub_item @@ -57,23 +59,24 @@ class TemplateList(): @property def folder_is_empty(self): return not any(self.get_templates_and_folders( - 'all', self.template_folder_id, [] + 'all', self.template_folder_id, self.user_id, [] )) class TemplateLists(): - def __init__(self, services): + def __init__(self, services, user_id=None): self.services = sorted( services, key=lambda service: service.name.lower(), ) + self.user_id = user_id def __iter__(self): if len(self.services) == 1: - for template_or_folder in TemplateList(self.services[0]): + for template_or_folder in TemplateList(self.services[0], user_id=self.user_id): yield template_or_folder return @@ -85,10 +88,11 @@ class TemplateLists(): yield template_list_service for service_templates_and_folders in TemplateList( - service + service, user_id=self.user_id ).get_templates_and_folders( template_type='all', template_folder_id=None, + user_id=self.user_id, ancestors=[template_list_service], ): yield service_templates_and_folders