Reimplement the IndexInstanceNodeView CBV view as a multi-inheritance CBV with manual super class resolution.

This commit is contained in:
Roberto Rosario
2015-07-06 00:03:21 -04:00
parent 8cc05bbefb
commit aea6772cbf

View File

@@ -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,