Move tree node widget code to the widgets.py file and prettify a bit

This commit is contained in:
Roberto Rosario
2012-02-05 00:48:31 -04:00
parent 735d3db97a
commit 9c03663924
2 changed files with 20 additions and 6 deletions

View File

@@ -1,5 +1,3 @@
# -*- coding: utf-8 -*-
from __future__ import absolute_import from __future__ import absolute_import
from django.utils.translation import ugettext_lazy as _ from django.utils.translation import ugettext_lazy as _
@@ -8,7 +6,6 @@ from django.shortcuts import render_to_response, get_object_or_404
from django.template import RequestContext from django.template import RequestContext
from django.contrib import messages from django.contrib import messages
from django.core.urlresolvers import reverse from django.core.urlresolvers import reverse
from django.utils.html import conditional_escape, mark_safe
from django.core.exceptions import PermissionDenied from django.core.exceptions import PermissionDenied
from permissions.models import Permission from permissions.models import Permission
@@ -22,7 +19,7 @@ from acls.models import AccessEntry
from .forms import IndexForm, IndexTemplateNodeForm from .forms import IndexForm, IndexTemplateNodeForm
from .models import (Index, IndexTemplateNode, IndexInstanceNode) from .models import (Index, IndexTemplateNode, IndexInstanceNode)
from .tools import do_rebuild_all_indexes from .tools import do_rebuild_all_indexes
from .widgets import (index_instance_item_link, get_breadcrumbs) from .widgets import (index_instance_item_link, get_breadcrumbs, node_level)
from .permissions import (PERMISSION_DOCUMENT_INDEXING_VIEW, from .permissions import (PERMISSION_DOCUMENT_INDEXING_VIEW,
PERMISSION_DOCUMENT_INDEXING_REBUILD_INDEXES, PERMISSION_DOCUMENT_INDEXING_REBUILD_INDEXES,
PERMISSION_DOCUMENT_INDEXING_SETUP, PERMISSION_DOCUMENT_INDEXING_SETUP,
@@ -164,7 +161,7 @@ def index_setup_view(request, index_pk):
'title': _(u'tree template nodes for index: %s') % index, 'title': _(u'tree template nodes for index: %s') % index,
'hide_object': True, 'hide_object': True,
'extra_columns': [ 'extra_columns': [
{'name': _(u'level'), 'attribute': encapsulate(lambda x: u''.join([mark_safe(conditional_escape(u'--') * (getattr(x, x._mptt_meta.level_attr) - 0)), unicode(x if x.parent else 'root') ] ))}, {'name': _(u'level'), 'attribute': encapsulate(lambda x: node_level(x))},
], ],
} }

View File

@@ -1,6 +1,8 @@
# -*- coding: utf-8 -*-
from __future__ import absolute_import from __future__ import absolute_import
from django.utils.safestring import mark_safe #from django.utils.safestring import mark_safe
from django.utils.html import conditional_escape, mark_safe
from .models import IndexInstanceNode from .models import IndexInstanceNode
@@ -71,3 +73,18 @@ def get_breadcrumbs(index_instance, simple=False, single_link=False, include_cou
else: else:
output.insert(0, u' / '.join(result)) output.insert(0, u' / '.join(result))
return mark_safe(u' '.join(output)) return mark_safe(u' '.join(output))
def node_level(x):
"""
Render an indented tree like output for a specific node
"""
return mark_safe(
u''.join(
[
u'     ' * (getattr(x, x._mptt_meta.level_attr) - 1),
u'' if x.parent else u'',
unicode(x if x.parent else 'root')
]
)
)