mirror of
https://github.com/netbox-community/netbox.git
synced 2025-07-22 12:06:53 -06:00
Return all VC member interfaces when filtering for the master device; remove virtual_chassis_id filter
This commit is contained in:
parent
4871682dc6
commit
d41f4d2db3
@ -569,11 +569,6 @@ class InterfaceFilter(django_filters.FilterSet):
|
||||
method='_mac_address',
|
||||
label='MAC address',
|
||||
)
|
||||
virtual_chassis_id = django_filters.NumberFilter(
|
||||
method='_virtual_chassis_id',
|
||||
name='pk',
|
||||
label='Virtual chassis (ID)',
|
||||
)
|
||||
|
||||
class Meta:
|
||||
model = Interface
|
||||
@ -582,8 +577,9 @@ class InterfaceFilter(django_filters.FilterSet):
|
||||
def filter_device(self, queryset, name, value):
|
||||
try:
|
||||
device = Device.objects.select_related('device_type').get(**{name: value})
|
||||
vc_interface_ids = [i['id'] for i in device.vc_interfaces.values('id')]
|
||||
ordering = device.device_type.interface_ordering
|
||||
return queryset.filter(device=device).order_naturally(ordering)
|
||||
return queryset.filter(pk__in=vc_interface_ids).order_naturally(ordering)
|
||||
except Device.DoesNotExist:
|
||||
return queryset.none()
|
||||
|
||||
@ -606,14 +602,6 @@ class InterfaceFilter(django_filters.FilterSet):
|
||||
except AddrFormatError:
|
||||
return queryset.none()
|
||||
|
||||
def _virtual_chassis_id(self, queryset, name, value):
|
||||
try:
|
||||
virtual_chassis = VirtualChassis.objects.get(**{name: value})
|
||||
ordering = virtual_chassis.master.device_type.interface_ordering
|
||||
return queryset.filter(device__vc_membership__virtual_chassis=virtual_chassis).order_naturally(ordering)
|
||||
except VirtualChassis.DoesNotExist:
|
||||
return queryset.none()
|
||||
|
||||
|
||||
class DeviceBayFilter(DeviceComponentFilterSet):
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user