From c2b0ac3d02cbe6fe1057a19cae7fe76f0897f677 Mon Sep 17 00:00:00 2001 From: Jeremy Stretch Date: Wed, 17 Jan 2024 17:29:32 -0500 Subject: [PATCH] Introduce custom form widget templates to apply CSS classes --- .../django/forms/widgets/checkbox.html | 2 +- .../templates/django/forms/widgets/input.html | 1 + .../django/forms/widgets/select.html | 5 ++++ .../django/forms/widgets/textarea.html | 2 ++ netbox/utilities/forms/mixins.py | 24 +++++++++---------- 5 files changed, 21 insertions(+), 13 deletions(-) create mode 100644 netbox/templates/django/forms/widgets/input.html create mode 100644 netbox/templates/django/forms/widgets/select.html create mode 100644 netbox/templates/django/forms/widgets/textarea.html diff --git a/netbox/templates/django/forms/widgets/checkbox.html b/netbox/templates/django/forms/widgets/checkbox.html index 359657136..dc0496044 100644 --- a/netbox/templates/django/forms/widgets/checkbox.html +++ b/netbox/templates/django/forms/widgets/checkbox.html @@ -4,4 +4,4 @@ _selected_action to avoid breaking the admin UI. {% endcomment %} {% if widget.name != '_selected_action' %}{% endif %} -{% include "django/forms/widgets/input.html" %} + diff --git a/netbox/templates/django/forms/widgets/input.html b/netbox/templates/django/forms/widgets/input.html new file mode 100644 index 000000000..7f41bef26 --- /dev/null +++ b/netbox/templates/django/forms/widgets/input.html @@ -0,0 +1 @@ + diff --git a/netbox/templates/django/forms/widgets/select.html b/netbox/templates/django/forms/widgets/select.html new file mode 100644 index 000000000..4ee1378ce --- /dev/null +++ b/netbox/templates/django/forms/widgets/select.html @@ -0,0 +1,5 @@ + \ No newline at end of file diff --git a/netbox/templates/django/forms/widgets/textarea.html b/netbox/templates/django/forms/widgets/textarea.html new file mode 100644 index 000000000..a179d3342 --- /dev/null +++ b/netbox/templates/django/forms/widgets/textarea.html @@ -0,0 +1,2 @@ + \ No newline at end of file diff --git a/netbox/utilities/forms/mixins.py b/netbox/utilities/forms/mixins.py index 2d6c20fcc..1ff3246ce 100644 --- a/netbox/utilities/forms/mixins.py +++ b/netbox/utilities/forms/mixins.py @@ -32,18 +32,18 @@ class BootstrapMixin: if field.widget.__class__ in exempt_widgets: continue - elif isinstance(field.widget, forms.CheckboxInput): - field.widget.attrs['class'] = f'{css} form-check-input' - - elif isinstance(field.widget, forms.SelectMultiple) and 'size' in field.widget.attrs: - # Use native Bootstrap class for multi-line widgets + # field.widget.attrs['class'] = f'{css} form-select form-select-sm' + # + # elif isinstance(field.widget, (forms.Select, forms.SelectMultiple)): + # field.widget.attrs['class'] = f'{css} netbox-static-select' + # + # else: + # field.widget.attrs['class'] = f'{css} form-control' if field.required and not isinstance(field.widget, forms.FileInput): field.widget.attrs['required'] = 'required'