Arthur 1 год назад
Родитель
Сommit
a36cc0abb6

+ 57 - 26
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)

+ 1 - 3
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',

+ 1 - 3
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',

+ 0 - 1
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__ = (

+ 0 - 21
netbox/netbox/graphql/filters.py

@@ -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)

+ 2 - 2
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',

+ 0 - 1
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__ = (

+ 1 - 3
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',

+ 1 - 3
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',