mirror of
https://github.com/netbox-community/netbox.git
synced 2024-05-10 07:54:54 +00:00
9856 filter types
This commit is contained in:
@ -11,8 +11,11 @@ from utilities.filters import *
|
|||||||
|
|
||||||
def autotype_decorator(filterset):
|
def autotype_decorator(filterset):
|
||||||
|
|
||||||
def wrapper(cls):
|
def show_field(fieldname, v, cls):
|
||||||
print(f"cls: {cls}")
|
print(f"cls: {cls}")
|
||||||
|
print(f"{fieldname}: {v}")
|
||||||
|
|
||||||
|
def wrapper(cls):
|
||||||
cls.filterset = filterset
|
cls.filterset = filterset
|
||||||
fields = filterset.get_fields()
|
fields = filterset.get_fields()
|
||||||
model = filterset._meta.model
|
model = filterset._meta.model
|
||||||
@ -35,11 +38,9 @@ def autotype_decorator(filterset):
|
|||||||
create_function = True
|
create_function = True
|
||||||
attr_type = str | None
|
attr_type = str | None
|
||||||
elif isinstance(v, MACAddressFilter):
|
elif isinstance(v, MACAddressFilter):
|
||||||
print(f"{fieldname}: {v}")
|
show_field("MACAddressFilter", v, cls)
|
||||||
print("MACAddressFilter")
|
|
||||||
elif isinstance(v, MultiValueArrayFilter):
|
elif isinstance(v, MultiValueArrayFilter):
|
||||||
print(f"{fieldname}: {v}")
|
show_field("MultiValueArrayFilter", v, cls)
|
||||||
print("MultiValueArrayFilter")
|
|
||||||
elif isinstance(v, MultiValueCharFilter):
|
elif isinstance(v, MultiValueCharFilter):
|
||||||
create_function = True
|
create_function = True
|
||||||
attr_type = List[str] | None
|
attr_type = List[str] | None
|
||||||
@ -48,8 +49,7 @@ def autotype_decorator(filterset):
|
|||||||
elif isinstance(v, MultiValueDateTimeFilter):
|
elif isinstance(v, MultiValueDateTimeFilter):
|
||||||
attr_type = auto
|
attr_type = auto
|
||||||
elif isinstance(v, MultiValueDecimalFilter):
|
elif isinstance(v, MultiValueDecimalFilter):
|
||||||
print(f"{fieldname}: {v}")
|
show_field("MultiValueDecimalFilter", v, cls)
|
||||||
print("MultiValueDecimalFilter")
|
|
||||||
elif isinstance(v, MultiValueMACAddressFilter):
|
elif isinstance(v, MultiValueMACAddressFilter):
|
||||||
create_function = True
|
create_function = True
|
||||||
attr_type = List[str] | None
|
attr_type = List[str] | None
|
||||||
@ -57,17 +57,14 @@ def autotype_decorator(filterset):
|
|||||||
create_function = True
|
create_function = True
|
||||||
attr_type = List[str] | None
|
attr_type = List[str] | None
|
||||||
elif isinstance(v, MultiValueTimeFilter):
|
elif isinstance(v, MultiValueTimeFilter):
|
||||||
print(f"{fieldname}: {v}")
|
show_field("MultiValueTimeFilter", v, cls)
|
||||||
print("MultiValueTimeFilter")
|
|
||||||
elif isinstance(v, MultiValueWWNFilter):
|
elif isinstance(v, MultiValueWWNFilter):
|
||||||
create_function = True
|
create_function = True
|
||||||
attr_type = List[str] | None
|
attr_type = List[str] | None
|
||||||
elif isinstance(v, NullableCharFieldFilter):
|
elif isinstance(v, NullableCharFieldFilter):
|
||||||
print(f"{fieldname}: {v}")
|
show_field("NullableCharFieldFilter", v, cls)
|
||||||
print("NullableCharFieldFilter")
|
|
||||||
elif isinstance(v, NumericArrayFilter):
|
elif isinstance(v, NumericArrayFilter):
|
||||||
print(f"{fieldname}: {v}")
|
show_field("NumericArrayFilter", v, cls)
|
||||||
print("NumericArrayFilter")
|
|
||||||
elif isinstance(v, TreeNodeMultipleChoiceFilter):
|
elif isinstance(v, TreeNodeMultipleChoiceFilter):
|
||||||
create_function = True
|
create_function = True
|
||||||
attr_type = List[str] | None
|
attr_type = List[str] | None
|
||||||
@ -75,26 +72,19 @@ def autotype_decorator(filterset):
|
|||||||
# From django_filters - ordering of these matters as base classes must
|
# From django_filters - ordering of these matters as base classes must
|
||||||
# come after derived classes so the base class doesn't get matched first
|
# come after derived classes so the base class doesn't get matched first
|
||||||
elif issubclass(type(v), django_filters.OrderingFilter):
|
elif issubclass(type(v), django_filters.OrderingFilter):
|
||||||
print(f"{fieldname}: {v}")
|
show_field("OrderingFilter", v, cls)
|
||||||
print("OrderingFilter")
|
|
||||||
elif issubclass(type(v), django_filters.BaseRangeFilter):
|
elif issubclass(type(v), django_filters.BaseRangeFilter):
|
||||||
print(f"{fieldname}: {v}")
|
show_field("BaseRangeFilter", v, cls)
|
||||||
print("BaseRangeFilter")
|
|
||||||
elif issubclass(type(v), django_filters.BaseInFilter):
|
elif issubclass(type(v), django_filters.BaseInFilter):
|
||||||
print(f"{fieldname}: {v}")
|
show_field("BaseInFilter", v, cls)
|
||||||
print("BaseInFilter")
|
|
||||||
elif issubclass(type(v), django_filters.LookupChoiceFilter):
|
elif issubclass(type(v), django_filters.LookupChoiceFilter):
|
||||||
print(f"{fieldname}: {v}")
|
show_field("LookupChoiceFilter", v, cls)
|
||||||
print("LookupChoiceFilter")
|
|
||||||
elif issubclass(type(v), django_filters.AllValuesMultipleFilter):
|
elif issubclass(type(v), django_filters.AllValuesMultipleFilter):
|
||||||
print(f"{fieldname}: {v}")
|
show_field("AllValuesMultipleFilter", v, cls)
|
||||||
print("AllValuesMultipleFilter")
|
|
||||||
elif issubclass(type(v), django_filters.AllValuesFilter):
|
elif issubclass(type(v), django_filters.AllValuesFilter):
|
||||||
print(f"{fieldname}: {v}")
|
show_field("AllValuesFilter", v, cls)
|
||||||
print("AllValuesFilter")
|
|
||||||
elif issubclass(type(v), django_filters.TimeRangeFilter):
|
elif issubclass(type(v), django_filters.TimeRangeFilter):
|
||||||
print(f"{fieldname}: {v}")
|
show_field("TimeRangeFilter", v, cls)
|
||||||
print("TimeRangeFilter")
|
|
||||||
elif issubclass(type(v), django_filters.IsoDateTimeFromToRangeFilter):
|
elif issubclass(type(v), django_filters.IsoDateTimeFromToRangeFilter):
|
||||||
create_function = True
|
create_function = True
|
||||||
attr_type = str | None
|
attr_type = str | None
|
||||||
@ -108,14 +98,11 @@ def autotype_decorator(filterset):
|
|||||||
create_function = True
|
create_function = True
|
||||||
attr_type = str | None
|
attr_type = str | None
|
||||||
elif issubclass(type(v), django_filters.RangeFilter):
|
elif issubclass(type(v), django_filters.RangeFilter):
|
||||||
print(f"{fieldname}: {v}")
|
show_field("RangeFilter", v, cls)
|
||||||
print("RangeFilter")
|
|
||||||
elif issubclass(type(v), django_filters.NumericRangeFilter):
|
elif issubclass(type(v), django_filters.NumericRangeFilter):
|
||||||
print(f"{fieldname}: {v}")
|
show_field("NumericRangeFilter", v, cls)
|
||||||
print("NumericRangeFilter")
|
|
||||||
elif issubclass(type(v), django_filters.NumberFilter):
|
elif issubclass(type(v), django_filters.NumberFilter):
|
||||||
print(f"{fieldname}: {v}")
|
show_field("NumberFilter", v, cls)
|
||||||
print("NumberFilter")
|
|
||||||
elif issubclass(type(v), django_filters.ModelMultipleChoiceFilter):
|
elif issubclass(type(v), django_filters.ModelMultipleChoiceFilter):
|
||||||
create_function = True
|
create_function = True
|
||||||
attr_type = List[str] | None
|
attr_type = List[str] | None
|
||||||
@ -123,11 +110,9 @@ def autotype_decorator(filterset):
|
|||||||
create_function = True
|
create_function = True
|
||||||
attr_type = str | None
|
attr_type = str | None
|
||||||
elif issubclass(type(v), django_filters.DurationFilter):
|
elif issubclass(type(v), django_filters.DurationFilter):
|
||||||
print(f"{fieldname}: {v}")
|
show_field("DurationFilter", v, cls)
|
||||||
print("DurationFilter")
|
|
||||||
elif issubclass(type(v), django_filters.IsoDateTimeFilter):
|
elif issubclass(type(v), django_filters.IsoDateTimeFilter):
|
||||||
print(f"{fieldname}: {v}")
|
show_field("IsoDateTimeFilter", v, cls)
|
||||||
print("IsoDateTimeFilter")
|
|
||||||
elif issubclass(type(v), django_filters.DateTimeFilter):
|
elif issubclass(type(v), django_filters.DateTimeFilter):
|
||||||
attr_type = auto
|
attr_type = auto
|
||||||
elif issubclass(type(v), django_filters.TimeFilter):
|
elif issubclass(type(v), django_filters.TimeFilter):
|
||||||
@ -135,17 +120,14 @@ def autotype_decorator(filterset):
|
|||||||
elif issubclass(type(v), django_filters.DateFilter):
|
elif issubclass(type(v), django_filters.DateFilter):
|
||||||
attr_type = auto
|
attr_type = auto
|
||||||
elif issubclass(type(v), django_filters.TypedMultipleChoiceFilter):
|
elif issubclass(type(v), django_filters.TypedMultipleChoiceFilter):
|
||||||
print(f"{fieldname}: {v}")
|
show_field("TypedMultipleChoiceFilter", v, cls)
|
||||||
print("TypedMultipleChoiceFilter")
|
|
||||||
elif issubclass(type(v), django_filters.MultipleChoiceFilter):
|
elif issubclass(type(v), django_filters.MultipleChoiceFilter):
|
||||||
create_function = True
|
create_function = True
|
||||||
attr_type = List[str] | None
|
attr_type = List[str] | None
|
||||||
elif issubclass(type(v), django_filters.TypedChoiceFilter):
|
elif issubclass(type(v), django_filters.TypedChoiceFilter):
|
||||||
print(f"{fieldname}: {v}")
|
show_field("TypedChoiceFilter", v, cls)
|
||||||
print("TypedChoiceFilter")
|
|
||||||
elif issubclass(type(v), django_filters.ChoiceFilter):
|
elif issubclass(type(v), django_filters.ChoiceFilter):
|
||||||
print(f"{fieldname}: {v}")
|
show_field("ChoiceFilter", v, cls)
|
||||||
print("ChoiceFilter")
|
|
||||||
elif issubclass(type(v), django_filters.BooleanFilter):
|
elif issubclass(type(v), django_filters.BooleanFilter):
|
||||||
create_function = True
|
create_function = True
|
||||||
attr_type = bool | None
|
attr_type = bool | None
|
||||||
@ -157,8 +139,7 @@ def autotype_decorator(filterset):
|
|||||||
create_function = True
|
create_function = True
|
||||||
attr_type = str | None
|
attr_type = str | None
|
||||||
else:
|
else:
|
||||||
print(f"{fieldname}: {v}")
|
show_field("unknown type!", v, cls)
|
||||||
print("unknown type!")
|
|
||||||
|
|
||||||
if fieldname not in cls.__annotations__ and attr_type:
|
if fieldname not in cls.__annotations__ and attr_type:
|
||||||
cls.__annotations__[fieldname] = attr_type
|
cls.__annotations__[fieldname] = attr_type
|
||||||
@ -178,36 +159,3 @@ class BaseFilterMixin:
|
|||||||
|
|
||||||
def filter_by_filterset(self, queryset, key):
|
def filter_by_filterset(self, queryset, key):
|
||||||
return self.filterset(data={key: getattr(self, key)}, queryset=queryset).qs
|
return self.filterset(data={key: getattr(self, key)}, queryset=queryset).qs
|
||||||
|
|
||||||
|
|
||||||
@strawberry.input
|
|
||||||
class ChangeLoggedModelFilterMixin(BaseFilterMixin):
|
|
||||||
created: auto
|
|
||||||
last_updated: auto
|
|
||||||
created_by_request: str | None
|
|
||||||
updated_by_request: str | None
|
|
||||||
modified_by_request: str | None
|
|
||||||
|
|
||||||
def filter_created_by_request(self, queryset):
|
|
||||||
return self.filter_by_filterset(queryset, 'created_by_request')
|
|
||||||
|
|
||||||
def filter_updated_by_request(self, queryset):
|
|
||||||
return self.filter_by_filterset(queryset, 'updated_by_request')
|
|
||||||
|
|
||||||
def filter_modified_by_request(self, queryset):
|
|
||||||
return self.filter_by_filterset(queryset, 'modified_by_request')
|
|
||||||
|
|
||||||
|
|
||||||
@strawberry.input
|
|
||||||
class NetBoxModelFilterMixin(ChangeLoggedModelFilterMixin):
|
|
||||||
q: str | None
|
|
||||||
tag: List[str] | None
|
|
||||||
|
|
||||||
def filter_q(self, queryset):
|
|
||||||
# return self.search(queryset, None, self.q)
|
|
||||||
return self.filter_by_filterset(queryset, 'q')
|
|
||||||
|
|
||||||
def filter_tag(self, queryset, info):
|
|
||||||
# return self.filterset(data={'tag': self.tag}, queryset=queryset).qs
|
|
||||||
# return self.filterset(data={'tag': getattr(self, 'tag')}, queryset=queryset).qs
|
|
||||||
return self.filter_by_filterset(queryset, 'tag')
|
|
||||||
|
@ -1,9 +1,8 @@
|
|||||||
import strawberry
|
import strawberry
|
||||||
import strawberry_django
|
import strawberry_django
|
||||||
from strawberry import auto
|
|
||||||
from tenancy import filtersets, models
|
from tenancy import filtersets, models
|
||||||
|
|
||||||
from netbox.graphql import filter_mixins
|
from netbox.graphql.filter_mixins import autotype_decorator, BaseFilterMixin
|
||||||
|
|
||||||
__all__ = (
|
__all__ = (
|
||||||
'TenantFilter',
|
'TenantFilter',
|
||||||
@ -16,30 +15,35 @@ __all__ = (
|
|||||||
|
|
||||||
|
|
||||||
@strawberry_django.filter(models.Tenant, lookups=True)
|
@strawberry_django.filter(models.Tenant, lookups=True)
|
||||||
class TenantFilter(filtersets.TenantFilterSet):
|
@autotype_decorator(filtersets.TenantFilterSet)
|
||||||
id: auto
|
class TenantFilter(BaseFilterMixin):
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
@strawberry_django.filter(models.TenantGroup, lookups=True)
|
@strawberry_django.filter(models.TenantGroup, lookups=True)
|
||||||
class TenantGroupFilter(filtersets.TenantGroupFilterSet):
|
@autotype_decorator(filtersets.TenantGroupFilterSet)
|
||||||
id: auto
|
class TenantGroupFilter(BaseFilterMixin):
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
@strawberry_django.filter(models.Contact, lookups=True)
|
@strawberry_django.filter(models.Contact, lookups=True)
|
||||||
class ContactFilter(filtersets.ContactFilterSet):
|
@autotype_decorator(filtersets.ContactFilterSet)
|
||||||
id: auto
|
class ContactFilter(BaseFilterMixin):
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
@strawberry_django.filter(models.ContactRole, lookups=True)
|
@strawberry_django.filter(models.ContactRole, lookups=True)
|
||||||
class ContactRoleFilter(filtersets.ContactRoleFilterSet):
|
@autotype_decorator(filtersets.ContactRoleFilterSet)
|
||||||
id: auto
|
class ContactRoleFilter(BaseFilterMixin):
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
@strawberry_django.filter(models.ContactGroup, lookups=True)
|
@strawberry_django.filter(models.ContactGroup, lookups=True)
|
||||||
class ContactGroupFilter(filtersets.ContactGroupFilterSet):
|
@autotype_decorator(filtersets.ContactGroupFilterSet)
|
||||||
id: auto
|
class ContactGroupFilter(BaseFilterMixin):
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
@strawberry_django.filter(models.ContactAssignment, lookups=True)
|
@strawberry_django.filter(models.ContactAssignment, lookups=True)
|
||||||
class ContactAssignmentFilter(filtersets.ContactAssignmentFilterSet):
|
class ContactAssignmentFilter(BaseFilterMixin):
|
||||||
id: auto
|
pass
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
import strawberry
|
import strawberry
|
||||||
import strawberry_django
|
import strawberry_django
|
||||||
from django.contrib.auth import get_user_model
|
from django.contrib.auth import get_user_model
|
||||||
from django.contrib.auth.models import Group
|
from users import filtersets, models
|
||||||
from strawberry import auto
|
|
||||||
from users import filtersets
|
from netbox.graphql.filter_mixins import autotype_decorator, BaseFilterMixin
|
||||||
|
|
||||||
__all__ = (
|
__all__ = (
|
||||||
'GroupFilter',
|
'GroupFilter',
|
||||||
@ -11,19 +11,13 @@ __all__ = (
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@strawberry_django.filter(Group, lookups=True)
|
@strawberry_django.filter(models.Group, lookups=True)
|
||||||
class GroupFilter(filtersets.GroupFilterSet):
|
@autotype_decorator(filtersets.GroupFilterSet)
|
||||||
id: auto
|
class GroupFilter(BaseFilterMixin):
|
||||||
name: auto
|
pass
|
||||||
|
|
||||||
|
|
||||||
@strawberry_django.filter(get_user_model(), lookups=True)
|
@strawberry_django.filter(get_user_model(), lookups=True)
|
||||||
class UserFilter(filtersets.UserFilterSet):
|
@autotype_decorator(filtersets.UserFilterSet)
|
||||||
id: auto
|
class UserFilter(BaseFilterMixin):
|
||||||
username: auto
|
pass
|
||||||
first_name: auto
|
|
||||||
last_name: auto
|
|
||||||
email: auto
|
|
||||||
is_staff: auto
|
|
||||||
is_active: auto
|
|
||||||
is_superuser: auto
|
|
||||||
|
@ -1,7 +1,8 @@
|
|||||||
import strawberry
|
import strawberry
|
||||||
import strawberry_django
|
import strawberry_django
|
||||||
from strawberry import auto
|
from virtualization import filtersets, models
|
||||||
from virtualization import models, filtersets
|
|
||||||
|
from netbox.graphql.filter_mixins import autotype_decorator, BaseFilterMixin
|
||||||
|
|
||||||
|
|
||||||
__all__ = (
|
__all__ = (
|
||||||
@ -15,30 +16,36 @@ __all__ = (
|
|||||||
|
|
||||||
|
|
||||||
@strawberry_django.filter(models.Cluster, lookups=True)
|
@strawberry_django.filter(models.Cluster, lookups=True)
|
||||||
class ClusterFilter(filtersets.ClusterFilterSet):
|
@autotype_decorator(filtersets.ClusterFilterSet)
|
||||||
id: auto
|
class ClusterFilter(BaseFilterMixin):
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
@strawberry_django.filter(models.ClusterGroup, lookups=True)
|
@strawberry_django.filter(models.ClusterGroup, lookups=True)
|
||||||
class ClusterGroupFilter(filtersets.ClusterGroupFilterSet):
|
@autotype_decorator(filtersets.ClusterGroupFilterSet)
|
||||||
id: auto
|
class ClusterGroupFilter(BaseFilterMixin):
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
@strawberry_django.filter(models.ClusterType, lookups=True)
|
@strawberry_django.filter(models.ClusterType, lookups=True)
|
||||||
class ClusterTypeFilter(filtersets.ClusterTypeFilterSet):
|
@autotype_decorator(filtersets.ClusterTypeFilterSet)
|
||||||
id: auto
|
class ClusterTypeFilter(BaseFilterMixin):
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
@strawberry_django.filter(models.VirtualMachine, lookups=True)
|
@strawberry_django.filter(models.VirtualMachine, lookups=True)
|
||||||
class VirtualMachineFilter(filtersets.VirtualMachineFilterSet):
|
@autotype_decorator(filtersets.VirtualMachineFilterSet)
|
||||||
id: auto
|
class VirtualMachineFilter(BaseFilterMixin):
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
@strawberry_django.filter(models.VMInterface, lookups=True)
|
@strawberry_django.filter(models.VMInterface, lookups=True)
|
||||||
class VMInterfaceFilter(filtersets.VMInterfaceFilterSet):
|
@autotype_decorator(filtersets.VMInterfaceFilterSet)
|
||||||
id: auto
|
class VMInterfaceFilter(BaseFilterMixin):
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
@strawberry_django.filter(models.VirtualDisk, lookups=True)
|
@strawberry_django.filter(models.VirtualDisk, lookups=True)
|
||||||
class VirtualDiskFilter(filtersets.VirtualDiskFilterSet):
|
@autotype_decorator(filtersets.VirtualDiskFilterSet)
|
||||||
id: auto
|
class VirtualDiskFilter(BaseFilterMixin):
|
||||||
|
pass
|
||||||
|
@ -1,8 +1,9 @@
|
|||||||
import strawberry
|
import strawberry
|
||||||
import strawberry_django
|
import strawberry_django
|
||||||
from strawberry import auto
|
|
||||||
from vpn import filtersets, models
|
from vpn import filtersets, models
|
||||||
|
|
||||||
|
from netbox.graphql.filter_mixins import autotype_decorator, BaseFilterMixin
|
||||||
|
|
||||||
__all__ = (
|
__all__ = (
|
||||||
'TunnelGroupFilter',
|
'TunnelGroupFilter',
|
||||||
'TunnelTerminationFilter',
|
'TunnelTerminationFilter',
|
||||||
@ -18,50 +19,60 @@ __all__ = (
|
|||||||
|
|
||||||
|
|
||||||
@strawberry_django.filter(models.TunnelGroup, lookups=True)
|
@strawberry_django.filter(models.TunnelGroup, lookups=True)
|
||||||
class TunnelGroupFilter(filtersets.TunnelGroupFilterSet):
|
@autotype_decorator(filtersets.TunnelGroupFilterSet)
|
||||||
id: auto
|
class TunnelGroupFilter(BaseFilterMixin):
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
@strawberry_django.filter(models.TunnelTermination, lookups=True)
|
@strawberry_django.filter(models.TunnelTermination, lookups=True)
|
||||||
class TunnelTerminationFilter(filtersets.TunnelTerminationFilterSet):
|
@autotype_decorator(filtersets.TunnelTerminationFilterSet)
|
||||||
id: auto
|
class TunnelTerminationFilter(BaseFilterMixin):
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
@strawberry_django.filter(models.Tunnel, lookups=True)
|
@strawberry_django.filter(models.Tunnel, lookups=True)
|
||||||
class TunnelFilter(filtersets.TunnelFilterSet):
|
@autotype_decorator(filtersets.TunnelFilterSet)
|
||||||
id: auto
|
class TunnelFilter(BaseFilterMixin):
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
@strawberry_django.filter(models.IKEProposal, lookups=True)
|
@strawberry_django.filter(models.IKEProposal, lookups=True)
|
||||||
class IKEProposalFilter(filtersets.IKEProposalFilterSet):
|
@autotype_decorator(filtersets.IKEProposalFilterSet)
|
||||||
id: auto
|
class IKEProposalFilter(BaseFilterMixin):
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
@strawberry_django.filter(models.IKEPolicy, lookups=True)
|
@strawberry_django.filter(models.IKEPolicy, lookups=True)
|
||||||
class IKEPolicyFilter(filtersets.IKEPolicyFilterSet):
|
@autotype_decorator(filtersets.IKEPolicyFilterSet)
|
||||||
id: auto
|
class IKEPolicyFilter(BaseFilterMixin):
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
@strawberry_django.filter(models.IPSecProposal, lookups=True)
|
@strawberry_django.filter(models.IPSecProposal, lookups=True)
|
||||||
class IPSecProposalFilter(filtersets.IPSecProposalFilterSet):
|
@autotype_decorator(filtersets.IPSecProposalFilterSet)
|
||||||
id: auto
|
class IPSecProposalFilter(BaseFilterMixin):
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
@strawberry_django.filter(models.IPSecPolicy, lookups=True)
|
@strawberry_django.filter(models.IPSecPolicy, lookups=True)
|
||||||
class IPSecPolicyFilter(filtersets.IPSecPolicyFilterSet):
|
@autotype_decorator(filtersets.IPSecPolicyFilterSet)
|
||||||
id: auto
|
class IPSecPolicyFilter(BaseFilterMixin):
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
@strawberry_django.filter(models.IPSecProfile, lookups=True)
|
@strawberry_django.filter(models.IPSecProfile, lookups=True)
|
||||||
class IPSecProfileFilter(filtersets.IPSecProfileFilterSet):
|
@autotype_decorator(filtersets.IPSecProfileFilterSet)
|
||||||
id: auto
|
class IPSecProfileFilter(BaseFilterMixin):
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
@strawberry_django.filter(models.L2VPN, lookups=True)
|
@strawberry_django.filter(models.L2VPN, lookups=True)
|
||||||
class L2VPNFilter(filtersets.L2VPNFilterSet):
|
@autotype_decorator(filtersets.L2VPNFilterSet)
|
||||||
id: auto
|
class L2VPNFilter(BaseFilterMixin):
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
@strawberry_django.filter(models.L2VPNTermination, lookups=True)
|
@strawberry_django.filter(models.L2VPNTermination, lookups=True)
|
||||||
class L2VPNTerminationFilter(filtersets.L2VPNTerminationFilterSet):
|
@autotype_decorator(filtersets.L2VPNTerminationFilterSet)
|
||||||
id: auto
|
class L2VPNTerminationFilter(BaseFilterMixin):
|
||||||
|
pass
|
||||||
|
@ -1,8 +1,9 @@
|
|||||||
import strawberry
|
import strawberry
|
||||||
import strawberry_django
|
import strawberry_django
|
||||||
from strawberry import auto
|
|
||||||
from wireless import filtersets, models
|
from wireless import filtersets, models
|
||||||
|
|
||||||
|
from netbox.graphql.filter_mixins import autotype_decorator, BaseFilterMixin
|
||||||
|
|
||||||
__all__ = (
|
__all__ = (
|
||||||
'WirelessLANGroupFilter',
|
'WirelessLANGroupFilter',
|
||||||
'WirelessLANFilter',
|
'WirelessLANFilter',
|
||||||
@ -11,15 +12,18 @@ __all__ = (
|
|||||||
|
|
||||||
|
|
||||||
@strawberry_django.filter(models.WirelessLANGroup, lookups=True)
|
@strawberry_django.filter(models.WirelessLANGroup, lookups=True)
|
||||||
class WirelessLANGroupFilter(filtersets.WirelessLANGroupFilterSet):
|
@autotype_decorator(filtersets.WirelessLANGroupFilterSet)
|
||||||
id: auto
|
class WirelessLANGroupFilter(BaseFilterMixin):
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
@strawberry_django.filter(models.WirelessLAN, lookups=True)
|
@strawberry_django.filter(models.WirelessLAN, lookups=True)
|
||||||
class WirelessLANFilter(filtersets.WirelessLANFilterSet):
|
@autotype_decorator(filtersets.WirelessLANFilterSet)
|
||||||
id: auto
|
class WirelessLANFilter(BaseFilterMixin):
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
@strawberry_django.filter(models.WirelessLink, lookups=True)
|
@strawberry_django.filter(models.WirelessLink, lookups=True)
|
||||||
class WirelessLinkFilter(filtersets.WirelessLinkFilterSet):
|
@autotype_decorator(filtersets.WirelessLinkFilterSet)
|
||||||
id: auto
|
class WirelessLinkFilter(BaseFilterMixin):
|
||||||
|
pass
|
||||||
|
Reference in New Issue
Block a user