Ver Fonte

Fixes #12550: Fix rear port selection widget under front port creation form

jeremystretch há 2 anos atrás
pai
commit
b7f028fba3

+ 4 - 0
docs/release-notes/version-3.5.md

@@ -13,6 +13,10 @@
 * [#12323](https://github.com/netbox-community/netbox/issues/12323) - Add 100GE CXP interface type
 * [#12498](https://github.com/netbox-community/netbox/issues/12498) - Hide map button if `MAPS_URL` is empty
 
+### Bug Fixes
+
+* [#12550](https://github.com/netbox-community/netbox/issues/12550) - Fix rear port selection widget under front port creation form
+
 ---
 
 ## v3.5.1 (2023-05-05)

+ 1 - 0
netbox/dcim/forms/object_create.py

@@ -242,6 +242,7 @@ class FrontPortCreateForm(ComponentCreateForm, model_forms.FrontPortForm):
         choices=[],
         label=_('Rear ports'),
         help_text=_('Select one rear port assignment for each front port being created.'),
+        widget=forms.SelectMultiple(attrs={'size': 6})
     )
 
     # Override fieldsets from FrontPortForm to omit rear_port_position

+ 4 - 4
netbox/utilities/forms/mixins.py

@@ -32,11 +32,11 @@ class BootstrapMixin:
             elif isinstance(field.widget, forms.CheckboxInput):
                 field.widget.attrs['class'] = f'{css} form-check-input'
 
-            elif isinstance(field.widget, forms.SelectMultiple):
-                if 'size' not in field.widget.attrs:
-                    field.widget.attrs['class'] = f'{css} netbox-static-select'
+            elif isinstance(field.widget, forms.SelectMultiple) and 'size' in field.widget.attrs:
+                # Use native Bootstrap class for multi-line <select> widgets
+                field.widget.attrs['class'] = f'{css} form-select form-select-sm'
 
-            elif isinstance(field.widget, forms.Select):
+            elif isinstance(field.widget, (forms.Select, forms.SelectMultiple)):
                 field.widget.attrs['class'] = f'{css} netbox-static-select'
 
             else: