Skip to content

Commit f652dc7

Browse files
authored
Merge pull request #19301 from renatoalmeidaoliveira/19229-cant-unset-a-device-interface-vlan-mode-without-an-error
Fixes: #19229 Validade interface mode changes
2 parents 18ac29f + 125bce8 commit f652dc7

File tree

1 file changed

+6
-1
lines changed

1 file changed

+6
-1
lines changed

netbox/dcim/forms/common.py

+6-1
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,6 @@ def __init__(self, *args, **kwargs):
4141

4242
def clean(self):
4343
super().clean()
44-
4544
parent_field = 'device' if 'device' in self.cleaned_data else 'virtual_machine'
4645
if 'tagged_vlans' in self.fields.keys():
4746
tagged_vlans = self.cleaned_data.get('tagged_vlans') if self.is_bound else \
@@ -61,6 +60,12 @@ def clean(self):
6160
"or they must be global"
6261
).format(vlans=', '.join(invalid_vlans))
6362
})
63+
# Validate mode change
64+
if self.instance.pk and (self.instance.mode != self.cleaned_data['mode']):
65+
if 'untagged_vlan' not in self.cleaned_data and self.instance.untagged_vlan is not None:
66+
self.instance.untagged_vlan = None
67+
if 'tagged_vlans' not in self.cleaned_data and self.instance.tagged_vlans is not None:
68+
self.instance.tagged_vlans.clear()
6469

6570

6671
class ModuleCommonForm(forms.Form):

0 commit comments

Comments
 (0)