|
@@ -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
|