From 7708ffb069bfee86886fae5d09776946b8b5fda8 Mon Sep 17 00:00:00 2001 From: Oliver Walters Date: Tue, 16 Apr 2019 19:01:58 +1000 Subject: [PATCH] Cleanup for AjaxDeleteView - Doesn't call renderJsonResponse as it returns html_data not html_form --- InvenTree/InvenTree/views.py | 45 +++++++++++++++++++----------------- 1 file changed, 24 insertions(+), 21 deletions(-) diff --git a/InvenTree/InvenTree/views.py b/InvenTree/InvenTree/views.py index 0f647382fe..e013bed133 100644 --- a/InvenTree/InvenTree/views.py +++ b/InvenTree/InvenTree/views.py @@ -65,10 +65,7 @@ class AjaxMixin(object): else: return self.template_name - def renderJsonResponse(self, request, form=None, data={}, context=None): - - if context is None: - context = self.get_context_data() + def renderJsonResponse(self, request, form=None, data={}, context={}): if form: context['form'] = form @@ -180,30 +177,20 @@ class AjaxUpdateView(AjaxMixin, UpdateView): class AjaxDeleteView(AjaxMixin, DeleteView): - def post(self, request, *args, **kwargs): - - if request.is_ajax(): - obj = self.get_object() - pk = obj.id - obj.delete() - - data = {'id': pk, - 'delete': True} - - return self.renderJsonResponse(request, None, data) - - else: - return super(DeleteView, self).post(request, *args, **kwargs) + """ An 'AJAXified DeleteView for removing an object from the DB + - Returns a HTML object (not a form!) in JSON format (for delivery to a modal window) + - Handles deletion + """ def get(self, request, *args, **kwargs): - response = super(DeleteView, self).get(request, *args, **kwargs) + html_response = super(DeleteView, self).get(request, *args, **kwargs) if request.is_ajax(): data = {'id': self.get_object().id, - 'title': self.ajax_form_title, 'delete': False, + 'title': self.ajax_form_title, 'html_data': render_to_string(self.getAjaxTemplate(), self.get_context_data(), request=request) @@ -212,7 +199,23 @@ class AjaxDeleteView(AjaxMixin, DeleteView): return JsonResponse(data) else: - return response + return html_response + + def post(self, request, *args, **kwargs): + + if request.is_ajax(): + + obj = self.get_object() + pk = obj.id + obj.delete() + + data = {'id': pk, + 'delete': True} + + return self.renderJsonResponse(request, data=data) + + else: + return super(DeleteView, self).post(request, *args, **kwargs) class IndexView(TemplateView):