mirror of
https://github.com/netbox-community/netbox.git
synced 2025-08-07 08:08:15 -06:00
Add back device search to allow export filter more specifically incase of overlap
This commit is contained in:
parent
1e51f884e5
commit
8277b423d6
@ -582,6 +582,11 @@ class InterfaceListFilter(django_filters.FilterSet):
|
||||
method='search',
|
||||
label='Search',
|
||||
)
|
||||
device = django_filters.CharFilter(
|
||||
method='filter_device',
|
||||
name='name',
|
||||
label='Device',
|
||||
)
|
||||
site = django_filters.CharFilter(
|
||||
method='filter_site',
|
||||
label='Site (slug)',
|
||||
@ -613,6 +618,14 @@ class InterfaceListFilter(django_filters.FilterSet):
|
||||
model = Interface
|
||||
fields = ['form_factor', 'enabled', 'mtu']
|
||||
|
||||
def filter_device(self, queryset, name, value):
|
||||
try:
|
||||
device = Device.objects.select_related('device_type').get(**{name: value})
|
||||
ordering = device.device_type.interface_ordering
|
||||
return queryset.filter(device=device).order_naturally(ordering)
|
||||
except Device.DoesNotExist:
|
||||
return queryset.none()
|
||||
|
||||
def filter_site(self, queryset, name, value):
|
||||
if not value.strip():
|
||||
return queryset
|
||||
|
@ -1623,7 +1623,7 @@ class InterfaceListFilterForm(BootstrapMixin, forms.Form):
|
||||
rack_group_id = FilterChoiceField(
|
||||
required=False,
|
||||
queryset=RackGroup.objects.select_related('site').annotate(filter_count=Count('racks__devices')),
|
||||
label='Rack group',
|
||||
label='Rack Group',
|
||||
null_option=(0, 'None')
|
||||
)
|
||||
rack_id = FilterChoiceField(
|
||||
@ -1636,8 +1636,10 @@ class InterfaceListFilterForm(BootstrapMixin, forms.Form):
|
||||
role = FilterChoiceField(
|
||||
required=False,
|
||||
queryset=DeviceRole.objects.annotate(filter_count=Count('devices')),
|
||||
to_field_name='slug'
|
||||
to_field_name='slug',
|
||||
label='Device Role'
|
||||
)
|
||||
device = forms.CharField(required=False, label='Device Name')
|
||||
|
||||
|
||||
#
|
||||
|
Loading…
Reference in New Issue
Block a user