Conver folder list and document folder list views to CBV.

This commit is contained in:
Roberto Rosario
2015-07-01 20:57:55 -04:00
parent e0d38d316a
commit fd11a15bf3
2 changed files with 25 additions and 24 deletions

View File

@@ -6,7 +6,7 @@ from .api_views import (
APIDocumentFolderListView, APIFolderDocumentListView,
APIFolderDocumentView, APIFolderListView, APIFolderView
)
from .views import FolderDetailView, FolderListView
from .views import DocumentFolderListView, FolderDetailView, FolderListView
urlpatterns = patterns(
'folders.views',
@@ -19,7 +19,7 @@ urlpatterns = patterns(
url(r'^document/(?P<document_id>\d+)/folder/add/$', 'folder_add_document', name='folder_add_document'),
url(r'^document/multiple/folder/add/$', 'folder_add_multiple_documents', name='folder_add_multiple_documents'),
url(r'^document/(?P<document_id>\d+)/folder/list/$', 'document_folder_list', name='document_folder_list'),
url(r'^document/(?P<pk>\d+)/folder/list/$', DocumentFolderListView.as_view(), name='document_folder_list'),
)
api_urls = patterns(

View File

@@ -30,9 +30,15 @@ logger = logging.getLogger(__name__)
class FolderListView(SingleObjectListView):
model = Folder
object_permission = permission_folder_view
def get_queryset(self):
self.queryset = self.get_folder_queryset()
return super(FolderListView, self).get_queryset()
def get_folder_queryset(self):
return Folder.objects.all()
def get_extra_context(self):
return {
'title': _('Folders'),
@@ -200,31 +206,26 @@ def folder_add_document(request, document_id=None, document_id_list=None):
context_instance=RequestContext(request))
def document_folder_list(request, document_id):
document = get_object_or_404(Document, pk=document_id)
class DocumentFolderListView(FolderListView):
def dispatch(self, request, *args, **kwargs):
self.document = get_object_or_404(Document, pk=self.kwargs['pk'])
try:
Permission.check_permissions(request.user, [permission_document_view])
except PermissionDenied:
AccessControlList.objects.check_access(permission_document_view, request.user, document)
try:
Permission.check_permissions(request.user, [permission_folder_view])
except PermissionDenied:
AccessControlList.objects.check_access(permission_folder_view, request.user, self.document)
context = {
'hide_link': True,
'object': document,
'title': _('Folders containing document: %s') % document,
}
return super(DocumentFolderListView, self).dispatch(request, *args, **kwargs)
queryset = document.folders.all()
def get_folder_queryset(self):
return self.document.folders.all()
try:
Permission.check_permissions(request.user, [permission_folder_view])
except PermissionDenied:
queryset = AccessControlList.objects.filter_by_access(permission_folder_view, request.user, queryset)
context['object_list'] = queryset
return render_to_response('appearance/generic_list.html', context,
context_instance=RequestContext(request))
def get_extra_context(self):
return {
'hide_link': True,
'object': self.document,
'title': _('Folders containing document: %s') % self.document,
}
def folder_document_remove(request, folder_id, document_id=None, document_id_list=None):