Browse Source

Fix for bulk interface edit form 802.1Q settings (#1882)

* fixes #1881 - bulk interface 802.1Q settings form

* fix PEP8 newline

* PEP8 fixup
John Anderson 7 years ago
parent
commit
28ea06a8bc
1 changed files with 16 additions and 5 deletions
  1. 16 5
      netbox/dcim/forms.py

+ 16 - 5
netbox/dcim/forms.py

@@ -1934,6 +1934,11 @@ class InterfaceBulkEditForm(BootstrapMixin, BulkEditForm, ChainedFieldsMixin):
                 device = Device.objects.get(pk=self.initial.get('device'))
                 device = Device.objects.get(pk=self.initial.get('device'))
             except Device.DoesNotExist:
             except Device.DoesNotExist:
                 pass
                 pass
+        else:
+            try:
+                device = Device.objects.get(pk=self.data.get('device'))
+            except Device.DoesNotExist:
+                pass
         if device is not None:
         if device is not None:
             interface_ordering = device.device_type.interface_ordering
             interface_ordering = device.device_type.interface_ordering
             self.fields['lag'].queryset = Interface.objects.order_naturally(method=interface_ordering).filter(
             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'].queryset = Site.objects.none()
             self.fields['site'].initial = 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['untagged_vlan'].queryset = VLAN.objects.filter(**filter_dict)
         self.fields['tagged_vlans'].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():
         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.")
             raise forms.ValidationError("A virtual chassis member already exists in this position.")
 
 
-        return vc_position
+        return vc_position