# -*- coding: utf-8 -*- from __future__ import unicode_literals from django.apps import apps from django.utils.encoding import force_text from django.utils.html import mark_safe, escape def get_instance_link(index_instance_node): """ Return an HTML anchor to an index node instance """ return mark_safe( '{text}'.format( url=index_instance_node.get_absolute_url(), text=escape(index_instance_node.get_full_path()) ) ) def index_instance_item_link(index_instance_item): IndexInstanceNode = apps.get_model( app_label='document_indexing', model_name='IndexInstanceNode' ) if isinstance(index_instance_item, IndexInstanceNode): if index_instance_item.index_template_node.link_documents: icon_template = '' else: icon_template = '' else: icon_template = '' return mark_safe( '%(icon_template)s %(text)s' % { 'url': index_instance_item.get_absolute_url(), 'icon_template': icon_template, 'text': index_instance_item } ) def node_level(node): """ Render an indented tree like output for a specific node """ return mark_safe( ''.join( [ ' ' * node.get_level(), '' if node.is_root_node() else ' ', force_text(node) ] ) ) def node_tree(node, user): result = [] result.append('