From 8514cbedeff37531bfb89674377d4678817ab819 Mon Sep 17 00:00:00 2001 From: Jason Novinger Date: Tue, 18 Mar 2025 16:01:25 -0500 Subject: [PATCH 1/2] Fixes #18944: Clearing widget type field no longer causes 500 error --- netbox/extras/views.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/netbox/extras/views.py b/netbox/extras/views.py index 9b0eaebae34..54f6861779d 100644 --- a/netbox/extras/views.py +++ b/netbox/extras/views.py @@ -1103,7 +1103,7 @@ def get(self, request): } widget_form = DashboardWidgetAddForm(initial=initial) widget_name = get_field_value(widget_form, 'widget_class') - widget_class = get_widget_class(widget_name) + widget_class = get_widget_class(widget_name or 'extras.NoteWidget') config_form = widget_class.ConfigForm(initial=widget_class.default_config, prefix='config') return render(request, self.template_name, { From 8c43eb29aca31c76701b9517b863e19479e1106d Mon Sep 17 00:00:00 2001 From: Jason Novinger Date: Wed, 19 Mar 2025 12:18:24 -0500 Subject: [PATCH 2/2] Address PR feedback, cleanup implementation --- netbox/extras/views.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/netbox/extras/views.py b/netbox/extras/views.py index 54f6861779d..0ec7ae2af56 100644 --- a/netbox/extras/views.py +++ b/netbox/extras/views.py @@ -1098,12 +1098,12 @@ def get(self, request): if not request.htmx: return redirect('home') - initial = request.GET or { - 'widget_class': 'extras.NoteWidget', + initial = { + 'widget_class': request.GET.get('widget_class') or 'extras.NoteWidget', } widget_form = DashboardWidgetAddForm(initial=initial) widget_name = get_field_value(widget_form, 'widget_class') - widget_class = get_widget_class(widget_name or 'extras.NoteWidget') + widget_class = get_widget_class(widget_name) config_form = widget_class.ConfigForm(initial=widget_class.default_config, prefix='config') return render(request, self.template_name, {