From 15b2a7eab0612ab43eda6f17f37b4eabe4b34097 Mon Sep 17 00:00:00 2001 From: Jeremy Stretch Date: Tue, 24 Sep 2019 15:58:23 -0400 Subject: [PATCH] Fix form rendering; enable toggling of redirect to imported object --- netbox/dcim/forms.py | 2 +- netbox/templates/utilities/obj_import.html | 5 +++-- netbox/utilities/views.py | 10 +++++++++- 3 files changed, 13 insertions(+), 4 deletions(-) diff --git a/netbox/dcim/forms.py b/netbox/dcim/forms.py index 02bc61857..1af04a567 100644 --- a/netbox/dcim/forms.py +++ b/netbox/dcim/forms.py @@ -941,7 +941,7 @@ class RearPortTemplateImportForm(ComponentTemplateImportForm): ] -class DeviceTypeImportForm(forms.ModelForm): +class DeviceTypeImportForm(BootstrapMixin, forms.ModelForm): manufacturer = forms.ModelChoiceField( queryset=Manufacturer.objects.all(), to_field_name='name' diff --git a/netbox/templates/utilities/obj_import.html b/netbox/templates/utilities/obj_import.html index d2da2bc94..d0ba99295 100644 --- a/netbox/templates/utilities/obj_import.html +++ b/netbox/templates/utilities/obj_import.html @@ -15,12 +15,13 @@ {% endif %} -
+ {% csrf_token %} {% render_form form %}
- + + {% if return_url %} Cancel {% endif %} diff --git a/netbox/utilities/views.py b/netbox/utilities/views.py index 06267392a..3a9b19c76 100644 --- a/netbox/utilities/views.py +++ b/netbox/utilities/views.py @@ -440,7 +440,15 @@ class ObjectImportView(GetReturnURLMixin, View): messages.success(request, mark_safe('Imported object: {}'.format( obj.get_absolute_url(), obj ))) - return redirect(self.get_return_url(request)) + + if '_addanother' in request.POST: + return redirect(request.get_full_path()) + + return_url = form.cleaned_data.get('return_url') + if return_url is not None and is_safe_url(url=return_url, allowed_hosts=request.get_host()): + return redirect(return_url) + else: + return redirect(self.get_return_url(request, obj)) else: # Replicate model form errors for display