From 14de111130d5812e35e43d731c3baf83303796f3 Mon Sep 17 00:00:00 2001 From: Oliver Walters Date: Sat, 13 Apr 2019 22:22:04 +1000 Subject: [PATCH] Allow better passthrough of context variables for non-form views --- InvenTree/InvenTree/views.py | 10 ++++------ InvenTree/part/views.py | 12 +++++++++--- 2 files changed, 13 insertions(+), 9 deletions(-) diff --git a/InvenTree/InvenTree/views.py b/InvenTree/InvenTree/views.py index 9d9536f886..a80bfd3dee 100644 --- a/InvenTree/InvenTree/views.py +++ b/InvenTree/InvenTree/views.py @@ -65,9 +65,7 @@ class AjaxMixin(object): else: return self.template_name - def renderJsonResponse(self, request, form, data={}): - - context = {} + def renderJsonResponse(self, request, form=None, data={}, context={}): if form: context['form'] = form @@ -97,7 +95,7 @@ class AjaxView(AjaxMixin, View): def get(self, request, *args, **kwargs): - return self.renderJsonResponse(request, None) + return self.renderJsonResponse(request, **kwargs) class AjaxCreateView(AjaxMixin, CreateView): @@ -117,7 +115,7 @@ class AjaxCreateView(AjaxMixin, CreateView): data['url'] = obj.get_absolute_url() - return self.renderJsonResponse(request, form, data) + return self.renderJsonResponse(request, form=form, data=data, **kwargs) else: return super(CreateView, self).post(request, *args, **kwargs) @@ -129,7 +127,7 @@ class AjaxCreateView(AjaxMixin, CreateView): if request.is_ajax(): form = self.form_class(initial=self.get_initial()) - return self.renderJsonResponse(request, form) + return self.renderJsonResponse(request, form=form, data=data, **kwargs) else: return response diff --git a/InvenTree/part/views.py b/InvenTree/part/views.py index 7524949111..d7c77947d7 100644 --- a/InvenTree/part/views.py +++ b/InvenTree/part/views.py @@ -113,18 +113,24 @@ class PartEdit(AjaxUpdateView): class BomExport(AjaxView): model = Part + form_class = BomExportForm template_name = 'part/bom_export.html' - #ajax_template_name = 'modal_form.html' ajax_form_title = 'Export Bill of Materials' ajax_submit_text = 'Export' context_object_name = 'part' fields = [] + def get(self, request, *args, **kwargs): + + part = get_object_or_404(Part, pk=self.kwargs['pk']) + + return self.renderJsonResponse(request, context={'part': part}) + def post(self, request, *args, **kwargs): part = get_object_or_404(Part, pk=self.kwargs['pk']) - - return self.renderJsonResponse(request, None) + + return self.renderJsonResponse(request, context={'part': part}) def get_data(self): return {