|
@@ -233,18 +233,23 @@ class ObjectEditView(GetReturnURLMixin, BaseObjectView):
|
|
|
form = self.form(instance=obj, initial=initial_data)
|
|
form = self.form(instance=obj, initial=initial_data)
|
|
|
restrict_form_fields(form, request.user)
|
|
restrict_form_fields(form, request.user)
|
|
|
|
|
|
|
|
|
|
+ context = {
|
|
|
|
|
+ 'model': model,
|
|
|
|
|
+ 'object': obj,
|
|
|
|
|
+ 'form': form,
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ # If the form is being displayed within a "quick add" widget,
|
|
|
|
|
+ # use the appropriate template
|
|
|
|
|
+ if request.GET.get('_quickadd'):
|
|
|
|
|
+ return render(request, 'htmx/quick_add.html', context)
|
|
|
|
|
+
|
|
|
# If this is an HTMX request, return only the rendered form HTML
|
|
# If this is an HTMX request, return only the rendered form HTML
|
|
|
if htmx_partial(request):
|
|
if htmx_partial(request):
|
|
|
- return render(request, self.htmx_template_name, {
|
|
|
|
|
- 'model': model,
|
|
|
|
|
- 'object': obj,
|
|
|
|
|
- 'form': form,
|
|
|
|
|
- })
|
|
|
|
|
|
|
+ return render(request, self.htmx_template_name, context)
|
|
|
|
|
|
|
|
return render(request, self.template_name, {
|
|
return render(request, self.template_name, {
|
|
|
- 'model': model,
|
|
|
|
|
- 'object': obj,
|
|
|
|
|
- 'form': form,
|
|
|
|
|
|
|
+ **context,
|
|
|
'return_url': self.get_return_url(request, obj),
|
|
'return_url': self.get_return_url(request, obj),
|
|
|
'prerequisite_model': get_prerequisite_model(self.queryset),
|
|
'prerequisite_model': get_prerequisite_model(self.queryset),
|
|
|
**self.get_extra_context(request, obj),
|
|
**self.get_extra_context(request, obj),
|
|
@@ -259,6 +264,7 @@ class ObjectEditView(GetReturnURLMixin, BaseObjectView):
|
|
|
"""
|
|
"""
|
|
|
logger = logging.getLogger('netbox.views.ObjectEditView')
|
|
logger = logging.getLogger('netbox.views.ObjectEditView')
|
|
|
obj = self.get_object(**kwargs)
|
|
obj = self.get_object(**kwargs)
|
|
|
|
|
+ model = self.queryset.model
|
|
|
|
|
|
|
|
# Take a snapshot for change logging (if editing an existing object)
|
|
# Take a snapshot for change logging (if editing an existing object)
|
|
|
if obj.pk and hasattr(obj, 'snapshot'):
|
|
if obj.pk and hasattr(obj, 'snapshot'):
|
|
@@ -292,6 +298,12 @@ class ObjectEditView(GetReturnURLMixin, BaseObjectView):
|
|
|
msg = f'{msg} {obj}'
|
|
msg = f'{msg} {obj}'
|
|
|
messages.success(request, msg)
|
|
messages.success(request, msg)
|
|
|
|
|
|
|
|
|
|
+ # Object was created via "quick add" modal
|
|
|
|
|
+ if '_quickadd' in request.POST:
|
|
|
|
|
+ return render(request, 'htmx/quick_add_created.html', {
|
|
|
|
|
+ 'object': obj,
|
|
|
|
|
+ })
|
|
|
|
|
+
|
|
|
# If adding another object, redirect back to the edit form
|
|
# If adding another object, redirect back to the edit form
|
|
|
if '_addanother' in request.POST:
|
|
if '_addanother' in request.POST:
|
|
|
redirect_url = request.path
|
|
redirect_url = request.path
|
|
@@ -324,12 +336,19 @@ class ObjectEditView(GetReturnURLMixin, BaseObjectView):
|
|
|
else:
|
|
else:
|
|
|
logger.debug("Form validation failed")
|
|
logger.debug("Form validation failed")
|
|
|
|
|
|
|
|
- return render(request, self.template_name, {
|
|
|
|
|
|
|
+ context = {
|
|
|
|
|
+ 'model': model,
|
|
|
'object': obj,
|
|
'object': obj,
|
|
|
'form': form,
|
|
'form': form,
|
|
|
'return_url': self.get_return_url(request, obj),
|
|
'return_url': self.get_return_url(request, obj),
|
|
|
**self.get_extra_context(request, obj),
|
|
**self.get_extra_context(request, obj),
|
|
|
- })
|
|
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ # Form was submitted via a "quick add" widget
|
|
|
|
|
+ if '_quickadd' in request.POST:
|
|
|
|
|
+ return render(request, 'htmx/quick_add.html', context)
|
|
|
|
|
+
|
|
|
|
|
+ return render(request, self.template_name, context)
|
|
|
|
|
|
|
|
|
|
|
|
|
class ObjectDeleteView(GetReturnURLMixin, BaseObjectView):
|
|
class ObjectDeleteView(GetReturnURLMixin, BaseObjectView):
|