Convert the folder documents view and the tag folders view to class based views
This commit is contained in:
@@ -1,11 +1,13 @@
|
||||
from django.conf.urls import patterns, url
|
||||
|
||||
from .views import FolderDetailView
|
||||
|
||||
urlpatterns = patterns('folders.views',
|
||||
url(r'^list/$', 'folder_list', (), 'folder_list'),
|
||||
url(r'^create/$', 'folder_create', (), 'folder_create'),
|
||||
url(r'^(?P<folder_id>\d+)/edit/$', 'folder_edit', (), 'folder_edit'),
|
||||
url(r'^(?P<folder_id>\d+)/delete/$', 'folder_delete', (), 'folder_delete'),
|
||||
url(r'^(?P<folder_id>\d+)/$', 'folder_view', (), 'folder_view'),
|
||||
url(r'^(?P<pk>\d+)/$', FolderDetailView.as_view(), name='folder_view'),
|
||||
url(r'^(?P<folder_id>\d+)/remove/document/multiple/$', 'folder_document_multiple_remove', (), 'folder_document_multiple_remove'),
|
||||
|
||||
url(r'^document/(?P<document_id>\d+)/folder/add/$', 'folder_add_document', (), 'folder_add_document'),
|
||||
|
||||
@@ -16,7 +16,7 @@ from acls.views import acl_list_for
|
||||
from common.utils import encapsulate
|
||||
from documents.permissions import PERMISSION_DOCUMENT_VIEW
|
||||
from documents.models import Document
|
||||
from documents.views import document_list
|
||||
from documents.views import DocumentListView
|
||||
from permissions.models import Permission
|
||||
|
||||
from .forms import FolderForm, FolderListForm
|
||||
@@ -145,27 +145,28 @@ def folder_delete(request, folder_id):
|
||||
context_instance=RequestContext(request))
|
||||
|
||||
|
||||
def folder_view(request, folder_id):
|
||||
folder = get_object_or_404(Folder, pk=folder_id)
|
||||
class FolderDetailView(DocumentListView):
|
||||
def get_folder(self):
|
||||
folder = get_object_or_404(Folder, pk=self.kwargs['pk'])
|
||||
|
||||
try:
|
||||
Permission.objects.check_permissions(request.user, [PERMISSION_FOLDER_VIEW])
|
||||
except PermissionDenied:
|
||||
AccessEntry.objects.check_access(PERMISSION_FOLDER_VIEW, request.user, folder)
|
||||
try:
|
||||
Permission.objects.check_permissions(self.request.user, [PERMISSION_FOLDER_VIEW])
|
||||
except PermissionDenied:
|
||||
AccessEntry.objects.check_access(PERMISSION_FOLDER_VIEW, self.request.user, folder)
|
||||
|
||||
context = {
|
||||
'hide_links': True,
|
||||
'multi_select_as_buttons': True,
|
||||
'object': folder,
|
||||
'object_name': _(u'folder'),
|
||||
}
|
||||
return folder
|
||||
|
||||
return document_list(
|
||||
request,
|
||||
object_list=folder.documents,
|
||||
title=_(u'documents in folder: %s') % folder,
|
||||
extra_context=context
|
||||
)
|
||||
def get_queryset(self):
|
||||
return self.get_folder().documents
|
||||
|
||||
def get_extra_context(self):
|
||||
return {
|
||||
'title': _(u'Documents in folder: %s') % self.get_folder(),
|
||||
'hide_links': True,
|
||||
'multi_select_as_buttons': True,
|
||||
'object': self.get_folder(),
|
||||
'object_name': _(u'folder'),
|
||||
}
|
||||
|
||||
|
||||
def folder_add_document(request, document_id=None, document_id_list=None):
|
||||
|
||||
@@ -3,13 +3,14 @@ from __future__ import absolute_import
|
||||
from django.conf.urls import patterns, url
|
||||
|
||||
from .api_views import APITagListView, APITagView
|
||||
from .views import TagTaggedItemListView
|
||||
|
||||
urlpatterns = patterns('tags.views',
|
||||
url(r'^list/$', 'tag_list', (), 'tag_list'),
|
||||
url(r'^create/$', 'tag_create', (), 'tag_create'),
|
||||
url(r'^(?P<tag_id>\d+)/delete/$', 'tag_delete', (), 'tag_delete'),
|
||||
url(r'^(?P<tag_id>\d+)/edit/$', 'tag_edit', (), 'tag_edit'),
|
||||
url(r'^(?P<tag_id>\d+)/tagged_item/list/$', 'tag_tagged_item_list', (), 'tag_tagged_item_list'),
|
||||
url(r'^(?P<pk>\d+)/documents/$', TagTaggedItemListView.as_view(), name='tag_tagged_item_list'),
|
||||
url(r'^multiple/delete/$', 'tag_multiple_delete', (), 'tag_multiple_delete'),
|
||||
|
||||
url(r'^multiple/remove/document/(?P<document_id>\d+)/$', 'single_document_multiple_tag_remove', (), 'single_document_multiple_tag_remove'),
|
||||
|
||||
@@ -16,7 +16,7 @@ from acls.models import AccessEntry
|
||||
from acls.views import acl_list_for
|
||||
from acls.utils import apply_default_acls
|
||||
from documents.models import Document
|
||||
from documents.views import document_list
|
||||
from documents.views import DocumentListView
|
||||
from documents.permissions import PERMISSION_DOCUMENT_VIEW
|
||||
from permissions.models import Permission
|
||||
|
||||
@@ -231,18 +231,21 @@ def tag_edit(request, tag_id):
|
||||
}, context_instance=RequestContext(request))
|
||||
|
||||
|
||||
def tag_tagged_item_list(request, tag_id):
|
||||
tag = get_object_or_404(Tag, pk=tag_id)
|
||||
class TagTaggedItemListView(DocumentListView):
|
||||
def get_tag(self):
|
||||
return get_object_or_404(Tag, pk=self.kwargs['pk'])
|
||||
|
||||
return document_list(
|
||||
request,
|
||||
object_list=Document.objects.filter(tags__in=[tag]),
|
||||
title=_('documents with the tag "%s"') % tag,
|
||||
extra_context={
|
||||
'object': tag,
|
||||
def get_queryset(self):
|
||||
return Document.objects.filter(tags__in=[self.get_tag()])
|
||||
|
||||
def get_extra_context(self):
|
||||
return {
|
||||
'title': _(u'Documents with the tag "%s"') % self.get_tag(),
|
||||
'hide_links': True,
|
||||
'multi_select_as_buttons': True,
|
||||
'object': self.get_tag(),
|
||||
'object_name': _(u'tag'),
|
||||
}
|
||||
)
|
||||
|
||||
|
||||
def document_tags(request, document_id):
|
||||
|
||||
Reference in New Issue
Block a user