diff --git a/mayan/apps/documents/urls.py b/mayan/apps/documents/urls.py index fe7c3e422a..7e1b54f214 100644 --- a/mayan/apps/documents/urls.py +++ b/mayan/apps/documents/urls.py @@ -17,9 +17,9 @@ from .views import ( DocumentManyDeleteView, DocumentManyRestoreView, DocumentPageListView, DocumentPreviewView, DocumentRestoreView, DocumentTypeCreateView, DocumentTypeDeleteView, DocumentTypeDocumentListView, - DocumentTypeFilenameEditView, DocumentTypeFilenameListView, - DocumentTypeListView, DocumentTypeEditView, DocumentVersionListView, - EmptyTrashCanView, RecentDocumentListView + DocumentTypeFilenameDeleteView, DocumentTypeFilenameEditView, + DocumentTypeFilenameListView, DocumentTypeListView, DocumentTypeEditView, + DocumentVersionListView, EmptyTrashCanView, RecentDocumentListView ) urlpatterns = patterns( @@ -215,15 +215,18 @@ urlpatterns = patterns( ), url( r'^type/(?P\d+)/filename/list/$', - DocumentTypeFilenameListView.as_view(), name='document_type_filename_list' + DocumentTypeFilenameListView.as_view(), + name='document_type_filename_list' ), url( r'^type/filename/(?P\d+)/edit/$', - DocumentTypeFilenameEditView.as_view(), name='document_type_filename_edit' + DocumentTypeFilenameEditView.as_view(), + name='document_type_filename_edit' ), url( - r'^type/filename/(?P\d+)/delete/$', - 'document_type_filename_delete', name='document_type_filename_delete' + r'^type/filename/(?P\d+)/delete/$', + DocumentTypeFilenameDeleteView.as_view(), + name='document_type_filename_delete' ), url( r'^type/(?P\d+)/filename/create/$', diff --git a/mayan/apps/documents/views.py b/mayan/apps/documents/views.py index 04e6b1328b..4089c07f58 100644 --- a/mayan/apps/documents/views.py +++ b/mayan/apps/documents/views.py @@ -1035,39 +1035,25 @@ class DocumentTypeFilenameEditView(SingleObjectEditView): } -def document_type_filename_delete(request, document_type_filename_id): - Permission.check_permissions(request.user, (permission_document_type_edit,)) - document_type_filename = get_object_or_404(DocumentTypeFilename, pk=document_type_filename_id) +class DocumentTypeFilenameDeleteView(SingleObjectDeleteView): + model = DocumentTypeFilename + view_permission = permission_document_type_edit - post_action_redirect = reverse('documents:document_type_filename_list', args=(document_type_filename.document_type_id,)) + def get_extra_context(self): + return { + 'document_type': self.get_object().document_type, + 'filename': self.get_object(), + 'navigation_object_list': ('document_type', 'filename',), + 'title': _('Delete the quick label: %(label)s, from document type "%(document_type)s"?') % { + 'document_type': self.get_object().document_type, 'label': self.get_object() + }, + } - previous = request.POST.get('previous', request.GET.get('previous', request.META.get('HTTP_REFERER', reverse(settings.LOGIN_REDIRECT_URL)))) - next = request.POST.get('next', request.GET.get('next', post_action_redirect if post_action_redirect else request.META.get('HTTP_REFERER', reverse(settings.LOGIN_REDIRECT_URL)))) - - if request.method == 'POST': - try: - document_type_filename.delete() - messages.success(request, _('Document type quick label: %s deleted successfully.') % document_type_filename) - except Exception as exception: - messages.error(request, _('Document type quick label: %(document_type_filename)s delete error: %(error)s') % { - 'document_type_filename': document_type_filename, 'error': exception}) - - return HttpResponseRedirect(next) - - context = { - 'delete_view': True, - 'document_type': document_type_filename.document_type, - 'filename': document_type_filename, - 'previous': previous, - 'navigation_object_list': ('document_type', 'filename',), - 'next': next, - 'title': _('Delete the quick label: %(filename)s, from document type "%(document_type)s"?') % { - 'document_type': document_type_filename.document_type, 'filename': document_type_filename - }, - } - - return render_to_response('appearance/generic_confirm.html', context, - context_instance=RequestContext(request)) + def get_post_action_redirect(self): + return reverse( + 'documents:document_type_filename_list', + args=(self.get_object().document_type.pk,) + ) def document_type_filename_create(request, document_type_id):