From aea6772cbff6d4879dd5380f21b63191268fa7a6 Mon Sep 17 00:00:00 2001 From: Roberto Rosario Date: Mon, 6 Jul 2015 00:03:21 -0400 Subject: [PATCH] Reimplement the IndexInstanceNodeView CBV view as a multi-inheritance CBV with manual super class resolution. --- mayan/apps/document_indexing/views.py | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/mayan/apps/document_indexing/views.py b/mayan/apps/document_indexing/views.py index b1bb9d4397..3404d2f8b6 100644 --- a/mayan/apps/document_indexing/views.py +++ b/mayan/apps/document_indexing/views.py @@ -299,7 +299,7 @@ class IndexListView(SingleObjectListView): } -class IndexInstanceNodeView(DocumentListView): +class IndexInstanceNodeView(DocumentListView, SingleObjectListView): @staticmethod def get_item_count(instance, user): if instance.index_template_node.link_documents: @@ -322,12 +322,16 @@ class IndexInstanceNodeView(DocumentListView): except PermissionDenied: AccessControlList.objects.check_access(permission_document_indexing_view, request.user, self.index_instance.index) - return super(IndexInstanceNodeView, self).dispatch(request, *args, **kwargs) - - def get_document_queryset(self): if self.index_instance: if self.index_instance.index_template_node.link_documents: - return self.index_instance.documents.all() + return DocumentListView.dispatch(self, request, *args, **kwargs) + + return SingleObjectListView.dispatch(self, request, *args, **kwargs) + + def get_queryset(self): + if self.index_instance: + if self.index_instance.index_template_node.link_documents: + return DocumentListView.get_queryset(self) else: self.object_permission = None return self.index_instance.get_children().order_by('value') @@ -335,6 +339,11 @@ class IndexInstanceNodeView(DocumentListView): self.object_permission = None return IndexInstanceNode.objects.none() + def get_document_queryset(self): + if self.index_instance: + if self.index_instance.index_template_node.link_documents: + return self.index_instance.documents.all() + def get_extra_context(self): context = { 'hide_links': True,