From 28ea06a8bc3a9bea8e5f2e9e6c75902007a16ba0 Mon Sep 17 00:00:00 2001 From: John Anderson Date: Wed, 14 Feb 2018 10:42:12 -0500 Subject: [PATCH] Fix for bulk interface edit form 802.1Q settings (#1882) * fixes #1881 - bulk interface 802.1Q settings form * fix PEP8 newline * PEP8 fixup --- netbox/dcim/forms.py | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/netbox/dcim/forms.py b/netbox/dcim/forms.py index 36aa98a8d..10b999dd4 100644 --- a/netbox/dcim/forms.py +++ b/netbox/dcim/forms.py @@ -1934,6 +1934,11 @@ class InterfaceBulkEditForm(BootstrapMixin, BulkEditForm, ChainedFieldsMixin): device = Device.objects.get(pk=self.initial.get('device')) except Device.DoesNotExist: pass + else: + try: + device = Device.objects.get(pk=self.data.get('device')) + except Device.DoesNotExist: + pass if device is not None: interface_ordering = device.device_type.interface_ordering self.fields['lag'].queryset = Interface.objects.order_naturally(method=interface_ordering).filter( @@ -1950,10 +1955,16 @@ class InterfaceBulkEditForm(BootstrapMixin, BulkEditForm, ChainedFieldsMixin): self.fields['site'].queryset = Site.objects.none() self.fields['site'].initial = None - filter_dict = { - 'group_id': None, - 'site_id': None, - } + if self.is_bound: + filter_dict = { + 'group_id': self.data.get('vlan_group') or None, + 'site_id': self.data.get('site') or None, + } + else: + filter_dict = { + 'group_id': None, + 'site_id': None, + } self.fields['untagged_vlan'].queryset = VLAN.objects.filter(**filter_dict) self.fields['tagged_vlans'].queryset = VLAN.objects.filter(**filter_dict) @@ -2324,4 +2335,4 @@ class DeviceVCMembershipForm(forms.ModelForm): if Device.objects.filter(virtual_chassis=self.instance.virtual_chassis, vc_position=vc_position).exists(): raise forms.ValidationError("A virtual chassis member already exists in this position.") - return vc_position \ No newline at end of file + return vc_position