From 01a97add2a81c7358608ac83ad9bdc305ba69355 Mon Sep 17 00:00:00 2001 From: Jeremy Stretch Date: Thu, 1 Mar 2018 09:49:17 -0500 Subject: [PATCH] Fixes #1927: Include all VC member interaces on A side when creating a new interface connection --- netbox/dcim/forms.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/netbox/dcim/forms.py b/netbox/dcim/forms.py index d74d6fcd9..0c8ea3716 100644 --- a/netbox/dcim/forms.py +++ b/netbox/dcim/forms.py @@ -2069,7 +2069,7 @@ class InterfaceConnectionForm(BootstrapMixin, ChainedFieldsMixin, forms.ModelFor super(InterfaceConnectionForm, self).__init__(*args, **kwargs) # Initialize interface A choices - device_a_interfaces = Interface.objects.connectable().order_naturally().filter(device=device_a).select_related( + device_a_interfaces = device_a.vc_interfaces.connectable().order_naturally().select_related( 'circuit_termination', 'connected_as_a', 'connected_as_b' ) self.fields['interface_a'].choices = [ @@ -2078,9 +2078,11 @@ class InterfaceConnectionForm(BootstrapMixin, ChainedFieldsMixin, forms.ModelFor # Mark connected interfaces as disabled if self.data.get('device_b'): - self.fields['interface_b'].choices = [ - (iface.id, {'label': iface.name, 'disabled': iface.is_connected}) for iface in self.fields['interface_b'].queryset - ] + self.fields['interface_b'].choices = [] + for iface in self.fields['interface_b'].queryset: + self.fields['interface_b'].choices.append( + (iface.id, {'label': iface.name, 'disabled': iface.is_connected}) + ) class InterfaceConnectionCSVForm(forms.ModelForm):