From 06705595b618e1dfc8d1bb9094c16a975441692d Mon Sep 17 00:00:00 2001 From: Jeremy Stretch Date: Thu, 14 Nov 2024 13:20:27 -0500 Subject: [PATCH] Misc cleanup --- netbox/circuits/forms/model_forms.py | 2 ++ netbox/netbox/views/generic/object_views.py | 6 ++++- netbox/project-static/dist/netbox.js.map | Bin 527951 -> 527957 bytes netbox/project-static/src/buttons/reslug.ts | 8 ++---- netbox/project-static/src/quickAdd.ts | 25 +++++------------- netbox/templates/htmx/quick_add.html | 14 +++++++--- netbox/templates/htmx/quick_add_created.html | 5 +++- netbox/utilities/forms/fields/dynamic.py | 2 +- .../templates/widgets/apiselect.html | 2 ++ 9 files changed, 34 insertions(+), 30 deletions(-) diff --git a/netbox/circuits/forms/model_forms.py b/netbox/circuits/forms/model_forms.py index 1e8c6d559..9eeb0f588 100644 --- a/netbox/circuits/forms/model_forms.py +++ b/netbox/circuits/forms/model_forms.py @@ -51,6 +51,7 @@ class ProviderAccountForm(NetBoxModelForm): provider = DynamicModelChoiceField( label=_('Provider'), queryset=Provider.objects.all(), + selector=True, quick_add=True ) comments = CommentField() @@ -66,6 +67,7 @@ class ProviderNetworkForm(NetBoxModelForm): provider = DynamicModelChoiceField( label=_('Provider'), queryset=Provider.objects.all(), + selector=True, quick_add=True ) comments = CommentField() diff --git a/netbox/netbox/views/generic/object_views.py b/netbox/netbox/views/generic/object_views.py index 19fc27ea7..fb554ca4f 100644 --- a/netbox/netbox/views/generic/object_views.py +++ b/netbox/netbox/views/generic/object_views.py @@ -239,6 +239,8 @@ class ObjectEditView(GetReturnURLMixin, BaseObjectView): '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) @@ -262,6 +264,7 @@ class ObjectEditView(GetReturnURLMixin, BaseObjectView): """ logger = logging.getLogger('netbox.views.ObjectEditView') obj = self.get_object(**kwargs) + model = self.queryset.model # Take a snapshot for change logging (if editing an existing object) if obj.pk and hasattr(obj, 'snapshot'): @@ -334,14 +337,15 @@ class ObjectEditView(GetReturnURLMixin, BaseObjectView): logger.debug("Form validation failed") context = { + 'model': model, 'object': obj, 'form': form, 'return_url': self.get_return_url(request, obj), **self.get_extra_context(request, obj), } + # Form was submitted via a "quick add" widget if '_quickadd' in request.POST: - context['model'] = self.queryset.model return render(request, 'htmx/quick_add.html', context) return render(request, self.template_name, context) diff --git a/netbox/project-static/dist/netbox.js.map b/netbox/project-static/dist/netbox.js.map index f202b5c6cee7247cec5365f2cca2c12af21602fb..a05e8edb51d286b535fab2371e7b9ad18b49d4b0 100644 GIT binary patch delta 148 zcmX>FEi9VN9FD#^!H&*3PSXvVS@fa2GN3 T(Rq5V1bYFKrPKENK>8~HdUP!| delta 135 zcmcaQN8$V&g@zW!7N!>FEi9VN?9O32!H%wO(+!(h^x2)$z?|(F%`A3|j8*N+TUdaY zb^G!bHl;}*S${`&x9Jzf*bN~Zpgt~fc0&&5EGLMRGmtkuK$P8@+0)H&`e{*isp;p$ W*_SZ7PA`^VFJP*2-u@Iwe+2+lD=F;& diff --git a/netbox/project-static/src/buttons/reslug.ts b/netbox/project-static/src/buttons/reslug.ts index 39c5e3972..53c21b1f0 100644 --- a/netbox/project-static/src/buttons/reslug.ts +++ b/netbox/project-static/src/buttons/reslug.ts @@ -22,13 +22,9 @@ function slugify(slug: string, chars: number): string { export function initReslug(): void { for (const slugButton of getElements('button#reslug')) { const form = slugButton.form; - if (form == null) { - continue; - } + if (form == null) continue; const slugField = form.querySelector('#id_slug') as HTMLInputElement; - if (slugField == null) { - continue; - } + if (slugField == null) continue; const sourceId = slugField.getAttribute('slug-source'); const sourceField = form.querySelector(`#id_${sourceId}`) as HTMLInputElement; diff --git a/netbox/project-static/src/quickAdd.ts b/netbox/project-static/src/quickAdd.ts index dd2827bdb..e038f5d19 100644 --- a/netbox/project-static/src/quickAdd.ts +++ b/netbox/project-static/src/quickAdd.ts @@ -2,34 +2,24 @@ import { Modal } from 'bootstrap'; function handleQuickAddObject(): void { const quick_add = document.getElementById('quick-add-object'); - if (quick_add == null) { - return; - } + if (quick_add == null) return; const object_id = quick_add.getAttribute('data-object-id'); - if (object_id == null) { - return; - } + if (object_id == null) return; const object_repr = quick_add.getAttribute('data-object-repr'); - if (object_repr == null) { - return; - } + if (object_repr == null) return; const target_id = quick_add.getAttribute('data-target-id'); - if (target_id == null) { - return; - } + if (target_id == null) return; const target = document.getElementById(target_id); - if (target == null) { - return; - } + if (target == null) return; - //@ts-ignore + //@ts-expect-error tomselect added on init target.tomselect.addOption({ id: object_id, display: object_repr, }); - //@ts-ignore + //@ts-expect-error tomselect added on init target.tomselect.addItem(object_id); const modal_element = document.getElementById('htmx-modal'); @@ -39,7 +29,6 @@ function handleQuickAddObject(): void { modal.hide(); } } - } export function initQuickAdd(): void { diff --git a/netbox/templates/htmx/quick_add.html b/netbox/templates/htmx/quick_add.html index a57b7438e..9473e14a1 100644 --- a/netbox/templates/htmx/quick_add.html +++ b/netbox/templates/htmx/quick_add.html @@ -3,15 +3,23 @@ {% load i18n %}