From 603d2e7417aaadd293f48e5fbd69333cc725f4e1 Mon Sep 17 00:00:00 2001 From: Roberto Rosario Date: Mon, 24 Aug 2015 03:01:08 -0400 Subject: [PATCH] Convert document preview view to CBV. --- mayan/apps/documents/urls.py | 11 ++++++----- mayan/apps/documents/views.py | 36 +++++++++++++++-------------------- 2 files changed, 21 insertions(+), 26 deletions(-) diff --git a/mayan/apps/documents/urls.py b/mayan/apps/documents/urls.py index 999fe3be78..fe7c3e422a 100644 --- a/mayan/apps/documents/urls.py +++ b/mayan/apps/documents/urls.py @@ -15,10 +15,11 @@ from .settings import setting_print_size, setting_display_size from .views import ( DeletedDocumentDeleteView, DeletedDocumentListView, DocumentListView, DocumentManyDeleteView, DocumentManyRestoreView, DocumentPageListView, - DocumentRestoreView, DocumentTypeCreateView, DocumentTypeDeleteView, - DocumentTypeDocumentListView, DocumentTypeFilenameEditView, - DocumentTypeFilenameListView, DocumentTypeListView, DocumentTypeEditView, - DocumentVersionListView, EmptyTrashCanView, RecentDocumentListView + DocumentPreviewView, DocumentRestoreView, DocumentTypeCreateView, + DocumentTypeDeleteView, DocumentTypeDocumentListView, + DocumentTypeFilenameEditView, DocumentTypeFilenameListView, + DocumentTypeListView, DocumentTypeEditView, DocumentVersionListView, + EmptyTrashCanView, RecentDocumentListView ) urlpatterns = patterns( @@ -34,7 +35,7 @@ urlpatterns = patterns( ), url( - r'^(?P\d+)/preview/$', 'document_preview', + r'^(?P\d+)/preview/$', DocumentPreviewView.as_view(), name='document_preview' ), url( diff --git a/mayan/apps/documents/views.py b/mayan/apps/documents/views.py index 917883fdf2..04e6b1328b 100644 --- a/mayan/apps/documents/views.py +++ b/mayan/apps/documents/views.py @@ -19,7 +19,7 @@ from acls.models import AccessControlList from common.compressed_files import CompressedFile from common.generics import ( ConfirmView, SingleObjectCreateView, SingleObjectDeleteView, - SingleObjectEditView, SingleObjectListView + SingleObjectDetailView, SingleObjectEditView, SingleObjectListView ) from common.mixins import MultipleInstanceActionMixin from common.utils import render_date_object @@ -308,28 +308,22 @@ def document_properties(request, document_id): }, context_instance=RequestContext(request)) -def document_preview(request, document_id): - document = get_object_or_404(Document, pk=document_id) +class DocumentPreviewView(SingleObjectDetailView): + model = Document + object_permission = permission_document_view - try: - Permission.check_permissions(request.user, (permission_document_view,)) - except PermissionDenied: - AccessControlList.objects.check_access( - permission_document_view, request.user, document - ) + def dispatch(self, request, *args, **kwargs): + result = super(DocumentPreviewView, self).dispatch(request, *args, **kwargs) + self.get_object().add_as_recent_document_for_user(request.user) + return result - document.add_as_recent_document_for_user(request.user) - - preview_form = DocumentPreviewForm(document=document) - - return render_to_response('appearance/generic_form.html', { - 'document': document, - 'form': preview_form, - 'hide_labels': True, - 'object': document, - 'read_only': True, - 'title': _('Preview of document: %s') % document, - }, context_instance=RequestContext(request)) + def get_extra_context(self): + return { + 'form': DocumentPreviewForm(document=self.get_object()), + 'hide_labels': True, + 'object': self.get_object(), + 'title': _('Preview of document: %s') % self.get_object(), + } def document_trash(request, document_id=None, document_id_list=None):