Ensure interfaces are MODE_TAGGED before adding/removing tagged vlans

This commit is contained in:
Brian Tiemann 2024-09-23 19:04:16 -04:00
parent c4aac4ea42
commit 6fa295bc2f

View File

@ -35,7 +35,7 @@ from virtualization.forms import VirtualMachineFilterForm
from virtualization.models import VirtualMachine
from virtualization.tables import VirtualMachineTable
from . import filtersets, forms, tables
from .choices import DeviceFaceChoices
from .choices import DeviceFaceChoices, InterfaceModeChoices
from .models import *
CABLE_TERMINATION_TYPES = {
@ -2618,10 +2618,11 @@ class InterfaceBulkEditView(generic.BulkEditView):
def extra_object_field_operations(self, form, obj):
# Add/remove tagged VLANs
if form.cleaned_data.get('add_tagged_vlans', None):
obj.tagged_vlans.add(*form.cleaned_data['add_tagged_vlans'])
if form.cleaned_data.get('remove_tagged_vlans', None):
obj.tagged_vlans.remove(*form.cleaned_data['remove_tagged_vlans'])
if obj.mode == InterfaceModeChoices.MODE_TAGGED:
if form.cleaned_data.get('add_tagged_vlans', None):
obj.tagged_vlans.add(*form.cleaned_data['add_tagged_vlans'])
if form.cleaned_data.get('remove_tagged_vlans', None):
obj.tagged_vlans.remove(*form.cleaned_data['remove_tagged_vlans'])
class InterfaceBulkRenameView(generic.BulkRenameView):