diff --git a/docs/release-notes/version-3.1.md b/docs/release-notes/version-3.1.md index 6e40ecfc6..067717592 100644 --- a/docs/release-notes/version-3.1.md +++ b/docs/release-notes/version-3.1.md @@ -19,6 +19,7 @@ * [#8577](https://github.com/netbox-community/netbox/issues/8577) - Show contact assignment counts in global search results * [#8578](https://github.com/netbox-community/netbox/issues/8578) - Object change log tables should honor user's configured preferences * [#8604](https://github.com/netbox-community/netbox/issues/8604) - Fix tag filter on config context list filter form +* [#8609](https://github.com/netbox-community/netbox/issues/8609) - Display validation error when attempting to assign VLANs to interface with no mode during bulk edit * [#8611](https://github.com/netbox-community/netbox/issues/8611) - Fix bulk editing for certain custom link, webhook, and journal entry fields --- diff --git a/netbox/dcim/forms/bulk_edit.py b/netbox/dcim/forms/bulk_edit.py index 9127b072f..3b604d79d 100644 --- a/netbox/dcim/forms/bulk_edit.py +++ b/netbox/dcim/forms/bulk_edit.py @@ -1043,8 +1043,14 @@ class InterfaceBulkEditForm( def clean(self): super().clean() + if not self.cleaned_data['mode']: + if self.cleaned_data['untagged_vlan']: + raise forms.ValidationError({'untagged_vlan': "Interface mode must be specified to assign VLANs"}) + elif self.cleaned_data['tagged_vlans']: + raise forms.ValidationError({'tagged_vlans': "Interface mode must be specified to assign VLANs"}) + # Untagged interfaces cannot be assigned tagged VLANs - if self.cleaned_data['mode'] == InterfaceModeChoices.MODE_ACCESS and self.cleaned_data['tagged_vlans']: + elif self.cleaned_data['mode'] == InterfaceModeChoices.MODE_ACCESS and self.cleaned_data['tagged_vlans']: raise forms.ValidationError({ 'mode': "An access interface cannot have tagged VLANs assigned." })