mirror of
https://github.com/netbox-community/netbox.git
synced 2025-07-21 11:37:21 -06:00
Added has_primary_ip filter for Devices
This commit is contained in:
parent
3e6a99fc22
commit
1791a5bb11
@ -348,6 +348,10 @@ class DeviceFilter(CustomFieldFilterSet, django_filters.FilterSet):
|
|||||||
name='device_type__is_network_device',
|
name='device_type__is_network_device',
|
||||||
label='Is a network device',
|
label='Is a network device',
|
||||||
)
|
)
|
||||||
|
has_primary_ip = django_filters.BooleanFilter(
|
||||||
|
method='_has_primary_ip',
|
||||||
|
label='Has a primary IP',
|
||||||
|
)
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
model = Device
|
model = Device
|
||||||
@ -373,6 +377,18 @@ class DeviceFilter(CustomFieldFilterSet, django_filters.FilterSet):
|
|||||||
except AddrFormatError:
|
except AddrFormatError:
|
||||||
return queryset.none()
|
return queryset.none()
|
||||||
|
|
||||||
|
def _has_primary_ip(self, queryset, name, value):
|
||||||
|
if value:
|
||||||
|
return queryset.filter(
|
||||||
|
Q(primary_ip4__isnull=False) |
|
||||||
|
Q(primary_ip6__isnull=False)
|
||||||
|
)
|
||||||
|
else:
|
||||||
|
return queryset.exclude(
|
||||||
|
Q(primary_ip4__isnull=False) |
|
||||||
|
Q(primary_ip6__isnull=False)
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
class DeviceComponentFilterSet(django_filters.FilterSet):
|
class DeviceComponentFilterSet(django_filters.FilterSet):
|
||||||
device_id = django_filters.ModelMultipleChoiceFilter(
|
device_id = django_filters.ModelMultipleChoiceFilter(
|
||||||
|
Loading…
Reference in New Issue
Block a user