From 6fa295bc2f7fe646d958aa1138df0612679cd853 Mon Sep 17 00:00:00 2001 From: Brian Tiemann Date: Mon, 23 Sep 2024 19:04:16 -0400 Subject: [PATCH] Ensure interfaces are MODE_TAGGED before adding/removing tagged vlans --- netbox/dcim/views.py | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/netbox/dcim/views.py b/netbox/dcim/views.py index c4bca327f..8036178ed 100644 --- a/netbox/dcim/views.py +++ b/netbox/dcim/views.py @@ -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):