Convert index list view to CBV.
This commit is contained in:
@@ -7,7 +7,7 @@ from .api_views import (
|
|||||||
APIIndexNodeInstanceDocumentListView, APIIndexTemplateListView,
|
APIIndexNodeInstanceDocumentListView, APIIndexTemplateListView,
|
||||||
APIIndexTemplateView, APIIndexView
|
APIIndexTemplateView, APIIndexView
|
||||||
)
|
)
|
||||||
from .views import SetupIndexDocumentTypesView, SetupIndexListView
|
from .views import IndexListView, SetupIndexDocumentTypesView, SetupIndexListView
|
||||||
|
|
||||||
|
|
||||||
urlpatterns = patterns(
|
urlpatterns = patterns(
|
||||||
@@ -23,7 +23,7 @@ urlpatterns = patterns(
|
|||||||
url(r'^setup/template/node/(?P<node_pk>\d+)/edit/$', 'template_node_edit', name='template_node_edit'),
|
url(r'^setup/template/node/(?P<node_pk>\d+)/edit/$', 'template_node_edit', name='template_node_edit'),
|
||||||
url(r'^setup/template/node/(?P<node_pk>\d+)/delete/$', 'template_node_delete', name='template_node_delete'),
|
url(r'^setup/template/node/(?P<node_pk>\d+)/delete/$', 'template_node_delete', name='template_node_delete'),
|
||||||
|
|
||||||
url(r'^index/list/$', 'index_list', name='index_list'),
|
url(r'^index/list/$', IndexListView.as_view(), name='index_list'),
|
||||||
url(r'^instance/node/(?P<index_instance_node_pk>\d+)/$', 'index_instance_node_view', name='index_instance_node_view'),
|
url(r'^instance/node/(?P<index_instance_node_pk>\d+)/$', 'index_instance_node_view', name='index_instance_node_view'),
|
||||||
|
|
||||||
url(r'^rebuild/all/$', 'rebuild_index_instances', name='rebuild_index_instances'),
|
url(r'^rebuild/all/$', 'rebuild_index_instances', name='rebuild_index_instances'),
|
||||||
|
|||||||
@@ -275,31 +275,29 @@ def template_node_delete(request, node_pk):
|
|||||||
context_instance=RequestContext(request))
|
context_instance=RequestContext(request))
|
||||||
|
|
||||||
|
|
||||||
# User views
|
class IndexListView(SingleObjectListView):
|
||||||
def index_list(request):
|
@staticmethod
|
||||||
"""
|
def get_items_count(instance):
|
||||||
Show a list of enabled indexes
|
try:
|
||||||
"""
|
if instance.template_root.link_documents:
|
||||||
context = {
|
return instance.instance_root.documents.count()
|
||||||
'title': _('Indexes'),
|
else:
|
||||||
'hide_links': True,
|
return instance.instance_root.get_children().count()
|
||||||
'extra_columns': [
|
except IndexInstanceNode.DoesNotExist:
|
||||||
{'name': _('Items'), 'attribute': encapsulate(lambda x: x.instance_root.documents.count() if x.template_root.link_documents else x.instance_root.get_children().count())},
|
return 0
|
||||||
{'name': _('Document types'), 'attribute': 'get_document_types_names'},
|
|
||||||
],
|
|
||||||
}
|
|
||||||
|
|
||||||
queryset = Index.objects.filter(enabled=True)
|
queryset = Index.objects.filter(enabled=True)
|
||||||
|
object_permission = permission_document_indexing_view
|
||||||
|
|
||||||
try:
|
def get_extra_context(self):
|
||||||
Permission.check_permissions(request.user, [permission_document_indexing_view])
|
return {
|
||||||
except PermissionDenied:
|
'title': _('Indexes'),
|
||||||
queryset = AccessControlList.objects.filter_by_access(permission_document_indexing_view, request.user, queryset)
|
'hide_links': True,
|
||||||
|
'extra_columns': [
|
||||||
context['object_list'] = queryset
|
{'name': _('Items'), 'attribute': encapsulate(lambda instance: IndexListView.get_items_count(instance))},
|
||||||
|
{'name': _('Document types'), 'attribute': 'get_document_types_names'},
|
||||||
return render_to_response('appearance/generic_list.html', context,
|
],
|
||||||
context_instance=RequestContext(request))
|
}
|
||||||
|
|
||||||
|
|
||||||
def index_instance_node_view(request, index_instance_node_pk):
|
def index_instance_node_view(request, index_instance_node_pk):
|
||||||
|
|||||||
Reference in New Issue
Block a user