From e2bfece9ff27cd8d36763a49df1d38205fce9c1c Mon Sep 17 00:00:00 2001 From: Roberto Rosario Date: Wed, 16 Mar 2016 16:40:17 -0400 Subject: [PATCH] Update document OCR content view to a CBV. --- mayan/apps/ocr/forms.py | 2 +- mayan/apps/ocr/urls.py | 9 +++++---- mayan/apps/ocr/views.py | 40 ++++++++++++++++++---------------------- 3 files changed, 24 insertions(+), 27 deletions(-) diff --git a/mayan/apps/ocr/forms.py b/mayan/apps/ocr/forms.py index d57df232a3..939e19a741 100644 --- a/mayan/apps/ocr/forms.py +++ b/mayan/apps/ocr/forms.py @@ -18,7 +18,7 @@ class DocumentContentForm(forms.Form): single textarea widget """ def __init__(self, *args, **kwargs): - self.document = kwargs.pop('document', None) + self.document = kwargs.pop('instance', None) super(DocumentContentForm, self).__init__(*args, **kwargs) content = [] self.fields['contents'].initial = '' diff --git a/mayan/apps/ocr/urls.py b/mayan/apps/ocr/urls.py index 1e3b433875..3a878df21f 100644 --- a/mayan/apps/ocr/urls.py +++ b/mayan/apps/ocr/urls.py @@ -6,14 +6,15 @@ from .api_views import ( APIDocumentOCRView, APIDocumentPageContentView, APIDocumentVersionOCRView ) from .views import ( - DocumentAllSubmitView, DocumentSubmitView, DocumentSubmitManyView, - DocumentTypeSettingsEditView, DocumentTypeSubmitView, EntryListView + DocumentAllSubmitView, DocumentOCRContent, DocumentSubmitView, + DocumentSubmitManyView, DocumentTypeSettingsEditView, + DocumentTypeSubmitView, EntryListView ) urlpatterns = patterns( - 'ocr.views', + '', url( - r'^(?P\d+)/content/$', 'document_content', + r'^(?P\d+)/content/$', DocumentOCRContent.as_view(), name='document_content' ), url( diff --git a/mayan/apps/ocr/views.py b/mayan/apps/ocr/views.py index 465b32524a..f163f71d15 100644 --- a/mayan/apps/ocr/views.py +++ b/mayan/apps/ocr/views.py @@ -10,7 +10,8 @@ from django.utils.translation import ugettext_lazy as _ from acls.models import AccessControlList from common.generics import ( - ConfirmView, FormView, SingleObjectEditView, SingleObjectListView + ConfirmView, FormView, SingleObjectDetailView, SingleObjectEditView, + SingleObjectListView ) from common.mixins import MultipleInstanceActionMixin from documents.models import Document, DocumentType @@ -134,30 +135,25 @@ class DocumentTypeSettingsEditView(SingleObjectEditView): } -def document_content(request, document_id): - document = get_object_or_404(Document, pk=document_id) +class DocumentOCRContent(SingleObjectDetailView): + model = Document + form_class = DocumentContentForm + object_permission = permission_ocr_content_view - try: - Permission.check_permissions( - request.user, (permission_ocr_content_view,) - ) - except PermissionDenied: - AccessControlList.objects.check_access( - permission_ocr_content_view, request.user, document + def dispatch(self, request, *args, **kwargs): + result = super(DocumentOCRContent, 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) - - content_form = DocumentContentForm(document=document) - - return render_to_response('appearance/generic_form.html', { - 'document': document, - 'form': content_form, - 'hide_labels': True, - 'object': document, - 'read_only': True, - 'title': _('OCR result for document: %s') % document, - }, context_instance=RequestContext(request)) + def get_extra_context(self): + return { + 'document': self.get_object(), + 'hide_labels': True, + 'object': self.get_object(), + 'title': _('OCR result for document: %s') % self.get_object(), + } class EntryListView(SingleObjectListView):