def handle_get_folders(self, data): shop = get_shop(self.request) users_owned_folders = Folder.objects.filter( media_folder__owners=self.user) root_folders = None # If the user has a root folder and not permission to view all folders if len(users_owned_folders) > 0 and not has_permission( self.user, "media.view-all"): all_accessed_folders = list( Folder._tree_manager.filter( _get_folder_query_filter(shop, self.user)).order_by( users_owned_folders.first()._mptt_meta.level_attr)) get_media_folder = cached_load( "SHUUP_GET_MEDIA_FOLDER_FROM_FOLDER") # We will need to change the tree ordering of folders that the user owns, # so the owning folders shows up under the root folder. # This is because if admin gives view access to a folder that has a lower level (closer to the root), # then the folder the user owns. It would be stacked under the folder that the admin has given access to, # insted of under the root folder. ordered_folders = [] for index, folder in enumerate(all_accessed_folders): media_folder = get_media_folder(folder) if self.user in media_folder.owners.all(): setattr(all_accessed_folders[index], folder._mptt_meta.level_attr, 0) ordered_folders.insert(0, all_accessed_folders[index]) else: in_path = False for folder_on_path in folder.logical_path: print(folder_on_path) if folder_on_path in all_accessed_folders: ordered_folders.append(folder) in_path = True break if not in_path: setattr(folder, folder._mptt_meta.level_attr, 0) ordered_folders.insert(0, folder) root_folders = get_cached_trees(ordered_folders) else: # Everything is shown under the fake root folder that is actually not a real folder root_folders = get_cached_trees( Folder._tree_manager.filter( _get_folder_query_filter(shop, self.user))) return JsonResponse({ "rootFolder": filer_folder_to_json_dict(None, root_folders, self.user) })
def get_root_categories(context): request = context["request"] language = get_language() roots = get_cached_trees( Category.objects.all_visible( customer=request.customer, shop=request.shop, language=language)) cache_translations_for_tree(roots, languages=[language]) return roots
def get_root_categories(context): request = context["request"] language = get_language() roots = get_cached_trees( Category.objects.all_visible( customer=request.customer, shop=request.shop, language=language)) cache_translations_for_tree(roots, languages=[language]) return roots
def handle_get_folders(self, data): shop = get_shop(self.request) root_folders = get_cached_trees(Folder._tree_manager.filter(_get_folder_query_filter(shop))) return JsonResponse({"rootFolder": _filer_folder_to_json_dict(None, root_folders)})
def handle_get_folders(self, data): shop = get_shop(self.request) root_folders = get_cached_trees( Folder._tree_manager.filter(_get_folder_query_filter(shop))) return JsonResponse( {"rootFolder": filer_folder_to_json_dict(None, root_folders)})