From a36cc0abb666c224c18c4a2b87d621fe18408179 Mon Sep 17 00:00:00 2001 From: Arthur Date: Tue, 12 Mar 2024 09:35:53 -0700 Subject: [PATCH] 9856 first filterset --- netbox/circuits/graphql/filters.py | 83 ++++++++++++++++-------- netbox/core/graphql/filters.py | 4 +- netbox/dcim/graphql/filters.py | 4 +- netbox/ipam/graphql/filters.py | 1 - netbox/netbox/graphql/filters.py | 21 ------ netbox/tenancy/graphql/filters.py | 4 +- netbox/virtualization/graphql/filters.py | 1 - netbox/vpn/graphql/filters.py | 4 +- netbox/wireless/graphql/filters.py | 4 +- 9 files changed, 63 insertions(+), 63 deletions(-) delete mode 100644 netbox/netbox/graphql/filters.py diff --git a/netbox/circuits/graphql/filters.py b/netbox/circuits/graphql/filters.py index c9c88ea01..2d6e75d14 100644 --- a/netbox/circuits/graphql/filters.py +++ b/netbox/circuits/graphql/filters.py @@ -1,9 +1,13 @@ +from typing import List + import strawberry import strawberry_django +from circuits import filtersets, models from strawberry import auto -from circuits import models, filtersets -from netbox.graphql import filters +from strawberry_django.filters import FilterLookup +from tenancy.graphql.filter_mixins import ContactModelFilterMixin, TenancyFilterMixin +from netbox.graphql.filter_mixins import NetBoxModelFilterMixin __all__ = ( 'CircuitTerminationFilter', @@ -32,37 +36,64 @@ class CircuitTerminationFilter(filtersets.CircuitTerminationFilterSet): @strawberry_django.filter(models.Circuit, lookups=True) -class CircuitFilter(filtersets.CircuitFilterSet, filters.NetBoxModelFilter): - # NetBoxModelFilterSet - q: str | None - # tag: - # ChangeLoggedModelFilterSet - created: auto - last_updated: auto - created_by_request: str | None - updated_by_request: str | None - modified_by_request: str | None +class CircuitFilter(NetBoxModelFilterMixin, TenancyFilterMixin, ContactModelFilterMixin): + filterset = filtersets.CircuitFilterSet - id: auto cid: auto description: auto install_date: auto termination_date: auto commit_rate: auto - provider_id: auto - provider: auto - provider_account_id: auto - type_id: auto - # provider_network_id: auto - type_id: auto - type: auto + + provider_id: List[str] | None + provider: List[str] | None + provider_account_id: List[str] | None + provider_network_id: List[str] | None + type_id: List[str] | None + type: List[str] | None status: auto - # region_id: auto - # region: auto - # site_group_id: auto - # site_group: auto - # site_id: auto - # site: auto + region_id: List[str] | None + region: List[str] | None + site_group_id: List[str] | None + site_group: List[str] | None + site_id: List[str] | None + site: List[str] | None + + def filter_provider_id(self, queryset): + return self.filter_by_filterset(queryset, 'provider_id') + + def filter_provider(self, queryset): + return self.filter_by_filterset(queryset, 'provider') + + def filter_provider_account_id(self, queryset): + return self.filter_by_filterset(queryset, 'provider_account_id') + + def filter_provider_network_id(self, queryset): + return self.filter_by_filterset(queryset, 'provider_network_id') + + def filter_type_id(self, queryset): + return self.filter_by_filterset(queryset, 'type_id') + + def filter_type(self, queryset): + return self.filter_by_filterset(queryset, 'type') + + def filter_region_id(self, queryset): + return self.filter_by_filterset(queryset, 'region_id') + + def filter_region(self, queryset): + return self.filter_by_filterset(queryset, 'region') + + def filter_site_group_id(self, queryset): + return self.filter_by_filterset(queryset, 'site_group_id') + + def filter_site_group(self, queryset): + return self.filter_by_filterset(queryset, 'site_group') + + def filter_site_id(self, queryset): + return self.filter_by_filterset(queryset, 'site_id') + + def filter_site(self, queryset): + return self.filter_by_filterset(queryset, 'site') # @strawberry_django.filter(models.Circuit, lookups=True) diff --git a/netbox/core/graphql/filters.py b/netbox/core/graphql/filters.py index 4e554331f..94a5eaf26 100644 --- a/netbox/core/graphql/filters.py +++ b/netbox/core/graphql/filters.py @@ -1,9 +1,7 @@ import strawberry import strawberry_django +from core import filtersets, models from strawberry import auto -from core import models, filtersets -from netbox.graphql import filters - __all__ = ( 'DataFileFilter', diff --git a/netbox/dcim/graphql/filters.py b/netbox/dcim/graphql/filters.py index d70552924..b0e478a2b 100644 --- a/netbox/dcim/graphql/filters.py +++ b/netbox/dcim/graphql/filters.py @@ -1,9 +1,7 @@ import strawberry import strawberry_django +from dcim import filtersets, models from strawberry import auto -from dcim import models, filtersets -from netbox.graphql import filters - __all__ = ( 'CableFilter', diff --git a/netbox/ipam/graphql/filters.py b/netbox/ipam/graphql/filters.py index 04254cbf0..08a9adb93 100644 --- a/netbox/ipam/graphql/filters.py +++ b/netbox/ipam/graphql/filters.py @@ -2,7 +2,6 @@ import strawberry import strawberry_django from strawberry import auto from ipam import models, filtersets -from netbox.graphql import filters __all__ = ( diff --git a/netbox/netbox/graphql/filters.py b/netbox/netbox/graphql/filters.py deleted file mode 100644 index c9e3c5776..000000000 --- a/netbox/netbox/graphql/filters.py +++ /dev/null @@ -1,21 +0,0 @@ -import strawberry -import strawberry_django -from strawberry import auto - - -class ChangeLoggedModelFilter: - - def created_by_request(self, queryset): - return self.filter_by_request(queryset, "created_by_request", self.created_by_request) - - def updated_by_request(self, queryset): - return self.filter_by_request(queryset, "updated_by_request", self.updated_by_request) - - def modified_by_request(self, queryset): - return self.filter_by_request(queryset, "modified_by_request", self.modified_by_request) - - -class NetBoxModelFilter(ChangeLoggedModelFilter): - - def filter_q(self, queryset): - return self.search(queryset, None, self.q) diff --git a/netbox/tenancy/graphql/filters.py b/netbox/tenancy/graphql/filters.py index a7d3c2f26..9e646b1f8 100644 --- a/netbox/tenancy/graphql/filters.py +++ b/netbox/tenancy/graphql/filters.py @@ -1,9 +1,9 @@ import strawberry import strawberry_django from strawberry import auto -from tenancy import models, filtersets -from netbox.graphql import filters +from tenancy import filtersets, models +from netbox.graphql import filter_mixins __all__ = ( 'TenantFilter', diff --git a/netbox/virtualization/graphql/filters.py b/netbox/virtualization/graphql/filters.py index 51671f7f0..22fb4d226 100644 --- a/netbox/virtualization/graphql/filters.py +++ b/netbox/virtualization/graphql/filters.py @@ -2,7 +2,6 @@ import strawberry import strawberry_django from strawberry import auto from virtualization import models, filtersets -from netbox.graphql import filters __all__ = ( diff --git a/netbox/vpn/graphql/filters.py b/netbox/vpn/graphql/filters.py index c3868cb52..2b347a1c1 100644 --- a/netbox/vpn/graphql/filters.py +++ b/netbox/vpn/graphql/filters.py @@ -1,9 +1,7 @@ import strawberry import strawberry_django from strawberry import auto -from vpn import models, filtersets -from netbox.graphql import filters - +from vpn import filtersets, models __all__ = ( 'TunnelGroupFilter', diff --git a/netbox/wireless/graphql/filters.py b/netbox/wireless/graphql/filters.py index 834f962c0..117c4823b 100644 --- a/netbox/wireless/graphql/filters.py +++ b/netbox/wireless/graphql/filters.py @@ -1,9 +1,7 @@ import strawberry import strawberry_django from strawberry import auto -from wireless import models, filtersets -from netbox.graphql import filters - +from wireless import filtersets, models __all__ = ( 'WirelessLANGroupFilter',