From dbe14fde427265111358c1326f5203cab46763a0 Mon Sep 17 00:00:00 2001 From: Roberto Rosario Date: Mon, 24 Aug 2015 17:42:53 -0400 Subject: [PATCH] Convert smart link view to a CBV view. --- mayan/apps/linking/urls.py | 7 +++-- mayan/apps/linking/views.py | 58 +++++++------------------------------ 2 files changed, 15 insertions(+), 50 deletions(-) diff --git a/mayan/apps/linking/urls.py b/mayan/apps/linking/urls.py index 9a52d8cf70..9143d1dad1 100644 --- a/mayan/apps/linking/urls.py +++ b/mayan/apps/linking/urls.py @@ -5,7 +5,8 @@ from django.conf.urls import patterns, url from .views import ( DocumentSmartLinkListView, ResolvedSmartLinkView, SetupSmartLinkDocumentTypesView, SmartLinkConditionListView, - SmartLinkCreateView, SmartLinkEditView, SmartLinkListView + SmartLinkCreateView, SmartLinkDeleteView, SmartLinkEditView, + SmartLinkListView ) urlpatterns = patterns( @@ -27,8 +28,8 @@ urlpatterns = patterns( name='smart_link_create' ), url( - r'^setup/(?P\d+)/delete/$', 'smart_link_delete', - name='smart_link_delete' + r'^setup/(?P\d+)/delete/$', + SmartLinkDeleteView.as_view(), name='smart_link_delete' ), url( r'^setup/(?P\d+)/edit/$', SmartLinkEditView.as_view(), diff --git a/mayan/apps/linking/views.py b/mayan/apps/linking/views.py index 96c6496a7d..3851af2f42 100644 --- a/mayan/apps/linking/views.py +++ b/mayan/apps/linking/views.py @@ -13,8 +13,8 @@ from django.utils.translation import ugettext_lazy as _ from acls.models import AccessControlList from common.generics import ( - AssignRemoveView, SingleObjectCreateView, SingleObjectEditView, - SingleObjectListView + AssignRemoveView, SingleObjectCreateView, SingleObjectDeleteView, + SingleObjectEditView, SingleObjectListView ) from documents.models import Document, DocumentType from documents.permissions import permission_document_view @@ -200,52 +200,16 @@ class SmartLinkEditView(SingleObjectEditView): } -def smart_link_delete(request, smart_link_pk): - smart_link = get_object_or_404(SmartLink, pk=smart_link_pk) +class SmartLinkDeleteView(SingleObjectDeleteView): + model = SmartLink + post_action_redirect = reverse_lazy('linking:smart_link_list') + view_permission = permission_smart_link_delete - try: - Permission.check_permissions( - request.user, (permission_smart_link_delete,) - ) - except PermissionDenied: - AccessControlList.objects.check_access( - permission_smart_link_delete, request.user, smart_link - ) - - next = request.POST.get( - 'next', request.GET.get('next', request.META.get('HTTP_REFERER', reverse(settings.LOGIN_REDIRECT_URL))) - ) - previous = request.POST.get( - 'previous', request.GET.get('previous', request.META.get('HTTP_REFERER', reverse(settings.LOGIN_REDIRECT_URL))) - ) - - if request.method == 'POST': - try: - smart_link.delete() - messages.success( - request, _( - 'Smart link: %s deleted successfully.' - ) % smart_link - ) - except Exception as exception: - messages.error( - request, _( - 'Error deleting smart link: %(smart_link)s; ' - '%(exception)s.' - ) % { - 'smart_link': smart_link, - 'exception': exception - } - ) - return HttpResponseRedirect(next) - - return render_to_response('appearance/generic_confirm.html', { - 'delete_view': True, - 'object': smart_link, - 'title': _('Delete smart link: %s?') % smart_link, - 'next': next, - 'previous': previous, - }, context_instance=RequestContext(request)) + def get_extra_context(self): + return { + 'object': self.get_object(), + 'title': _('Delete smart link: %s') % self.get_object() + } class SmartLinkConditionListView(SingleObjectListView):