diff --git a/netbox/dcim/forms.py b/netbox/dcim/forms.py index 3968bc64a..9041468d8 100644 --- a/netbox/dcim/forms.py +++ b/netbox/dcim/forms.py @@ -1065,6 +1065,7 @@ class ConsolePortTemplateBulkEditForm(BootstrapMixin, BulkEditForm): ) type = forms.ChoiceField( choices=add_blank_choice(ConsolePortTypeChoices), + required=False, widget=StaticSelect2() ) @@ -1107,6 +1108,7 @@ class ConsoleServerPortTemplateBulkEditForm(BootstrapMixin, BulkEditForm): ) type = forms.ChoiceField( choices=add_blank_choice(ConsolePortTypeChoices), + required=False, widget=StaticSelect2() ) @@ -1159,7 +1161,8 @@ class PowerPortTemplateBulkEditForm(BootstrapMixin, BulkEditForm): ) type = forms.ChoiceField( choices=add_blank_choice(PowerPortTypeChoices), - required=False + required=False, + widget=StaticSelect2() ) maximum_draw = forms.IntegerField( min_value=1, @@ -1241,7 +1244,8 @@ class PowerOutletTemplateBulkEditForm(BootstrapMixin, BulkEditForm): ) type = forms.ChoiceField( choices=add_blank_choice(PowerOutletTypeChoices), - required=False + required=False, + widget=StaticSelect2() ) feed_leg = forms.ChoiceField( choices=add_blank_choice(PowerOutletFeedLegChoices), @@ -1401,12 +1405,13 @@ class FrontPortTemplateBulkEditForm(BootstrapMixin, BulkEditForm): widget=forms.MultipleHiddenInput() ) type = forms.ChoiceField( - choices=PortTypeChoices, + choices=add_blank_choice(PortTypeChoices), + required=False, widget=StaticSelect2() ) class Meta: - nullable_fields = ('type',) + nullable_fields = () class RearPortTemplateForm(BootstrapMixin, forms.ModelForm): @@ -1450,12 +1455,13 @@ class RearPortTemplateBulkEditForm(BootstrapMixin, BulkEditForm): widget=forms.MultipleHiddenInput() ) type = forms.ChoiceField( - choices=PortTypeChoices, + choices=add_blank_choice(PortTypeChoices), + required=False, widget=StaticSelect2() ) class Meta: - nullable_fields = ('type',) + nullable_fields = () class DeviceBayTemplateForm(BootstrapMixin, forms.ModelForm): @@ -1482,6 +1488,7 @@ class DeviceBayTemplateCreateForm(BootstrapMixin, forms.Form): ) +# TODO: DeviceBayTemplate has no fields suitable for bulk-editing yet # class DeviceBayTemplateBulkEditForm(BootstrapMixin, BulkEditForm): # pk = forms.ModelMultipleChoiceField( # queryset=FrontPortTemplate.objects.all(), diff --git a/netbox/utilities/utils.py b/netbox/utilities/utils.py index 6db0d1bdf..979f95af9 100644 --- a/netbox/utilities/utils.py +++ b/netbox/utilities/utils.py @@ -219,6 +219,6 @@ def querydict_to_dict(querydict): """ assert isinstance(querydict, QueryDict) return { - key: querydict.get(key) if len(value) == 1 else querydict.getlist(key) + key: querydict.get(key) if len(value) == 1 and key != 'pk' else querydict.getlist(key) for key, value in querydict.lists() }