Browse Source

Fixes #8609: Display validation error when attempting to assign VLANs to interface with no mode during bulk edit

jeremystretch 4 years ago
parent
commit
14240318f1
2 changed files with 8 additions and 1 deletions
  1. 1 0
      docs/release-notes/version-3.1.md
  2. 7 1
      netbox/dcim/forms/bulk_edit.py

+ 1 - 0
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
 
 ---

+ 7 - 1
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."
             })