diff --git a/apps/document_indexing/models.py b/apps/document_indexing/models.py index ccf9cee910..91a22fe066 100644 --- a/apps/document_indexing/models.py +++ b/apps/document_indexing/models.py @@ -25,7 +25,7 @@ class Index(models.Model): @property def instance_root(self): - return self.template_root.indexinstancenode_set.get() + return self.template_root.node_instance def __unicode__(self): return self.title @@ -44,6 +44,9 @@ class Index(models.Model): super(Index, self).save(*args, **kwargs) index_template_node_root, created = IndexTemplateNode.objects.get_or_create(parent=None, index=self) + def get_document_types_names(self): + return u', '.join([unicode(document_type) for document_type in self.document_types.all()] or [u'All']) + class Meta: verbose_name = _(u'index') verbose_name_plural = _(u'indexes') @@ -60,6 +63,10 @@ class IndexTemplateNode(MPTTModel): def __unicode__(self): return self.expression + @property + def node_instance(self): + return self.indexinstancenode_set.get() + class Meta: verbose_name = _(u'index template node') verbose_name_plural = _(u'indexes template nodes') diff --git a/apps/document_indexing/views.py b/apps/document_indexing/views.py index 02be658278..6eeccd522e 100644 --- a/apps/document_indexing/views.py +++ b/apps/document_indexing/views.py @@ -311,6 +311,7 @@ def index_list(request): 'hide_links': True, 'extra_columns': [ {'name': _(u'nodes'), 'attribute': encapsulate(lambda x: x.instance_root.get_descendant_count())}, + {'name': _(u'document types'), 'attribute': 'get_document_types_names'}, ], } @@ -418,6 +419,7 @@ def document_index_list(request, document_id): queryset = document.indexinstancenode_set.all() try: + # TODO: should be AND not OR Permission.objects.check_permissions(request.user, [PERMISSION_DOCUMENT_VIEW, PERMISSION_DOCUMENT_INDEXING_VIEW]) except PermissionDenied: queryset = AccessEntry.objects.filter_objects_by_access(PERMISSION_DOCUMENT_INDEXING_VIEW, request.user, queryset)