def get_tree_for_user(self, user): filtered_items = self.get_for_user(user) tree = TreeGenerator(filtered_items) #tree.debug() # Hide categories, if they has sub entry links for node in tree.iter_flat_list(): if not node.data["absolute_url"] and not node.subnodes: node.visible = False return tree
def get_tree_for_user(self, user): filtered_items = self.get_for_user(user) tree = TreeGenerator(filtered_items) #tree.debug() # Hide categories, if they has no sub entry links # (e.g. user has no right to use any sub entry views) for node in tree.iter_flat_list(): if not node.data["absolute_url"] and not node.subnodes: node.visible = False return tree
def get_pagetree_objects(model): """ The PageTree entries must be serialized in the right order. Because they have references to him self. """ queryset = model._default_manager.all().order_by("position") items = queryset.values("id", "parent") tree = TreeGenerator(items, skip_no_parent=True) objects = [] for node in tree.iter_flat_list(): objects.append(model._default_manager.all().get(id=node.id)) return objects
def get_tree(self, user=None, filter_showlinks=False, exclude_plugin_pages=False, exclude_extras=None): """ return a TreeGenerator instance with all accessable page tree instance """ queryset = self.all_accessible(user, filter_showlinks) if exclude_plugin_pages: queryset = queryset.exclude(page_type=PageTree.PLUGIN_TYPE) if exclude_extras: queryset = queryset.exclude(**exclude_extras) items = queryset.values("id", "parent", "slug") tree = TreeGenerator(items, skip_no_parent=True) return tree