mirror of
https://github.com/netbox-community/netbox.git
synced 2025-12-11 10:59:36 -06:00
Rename base filter classes & move to netbox.graphql.filters
This commit is contained in:
parent
20c260b126
commit
dd11bdafee
@ -332,7 +332,7 @@ import strawberry
|
|||||||
import strawberry_django
|
import strawberry_django
|
||||||
from circuits import filtersets, models
|
from circuits import filtersets, models
|
||||||
|
|
||||||
from netbox.graphql.filter_mixins import autotype_decorator, BaseFilterMixin
|
from netbox.graphql.filter_mixins import autotype_decorator, BaseFilter
|
||||||
|
|
||||||
__all__ = (
|
__all__ = (
|
||||||
'CircuitFilter',
|
'CircuitFilter',
|
||||||
@ -341,7 +341,7 @@ __all__ = (
|
|||||||
|
|
||||||
@strawberry_django.filter(models.Circuit, lookups=True)
|
@strawberry_django.filter(models.Circuit, lookups=True)
|
||||||
@autotype_decorator(filtersets.CircuitFilterSet)
|
@autotype_decorator(filtersets.CircuitFilterSet)
|
||||||
class CircuitFilter(BaseFilterMixin):
|
class CircuitFilter(BaseFilter):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|||||||
@ -4,16 +4,16 @@ from typing import Annotated, TYPE_CHECKING
|
|||||||
import strawberry
|
import strawberry
|
||||||
import strawberry_django
|
import strawberry_django
|
||||||
|
|
||||||
from netbox.graphql.filter_mixins import OrganizationalModelFilterMixin
|
from netbox.graphql.filters import OrganizationalModelFilter
|
||||||
|
|
||||||
if TYPE_CHECKING:
|
if TYPE_CHECKING:
|
||||||
from netbox.graphql.enums import ColorEnum
|
from netbox.graphql.enums import ColorEnum
|
||||||
|
|
||||||
__all__ = (
|
__all__ = (
|
||||||
'BaseCircuitTypeFilterMixin',
|
'BaseCircuitTypeFilter',
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@dataclass
|
@dataclass
|
||||||
class BaseCircuitTypeFilterMixin(OrganizationalModelFilterMixin):
|
class BaseCircuitTypeFilter(OrganizationalModelFilter):
|
||||||
color: Annotated['ColorEnum', strawberry.lazy('netbox.graphql.enums')] | None = strawberry_django.filter_field()
|
color: Annotated['ColorEnum', strawberry.lazy('netbox.graphql.enums')] | None = strawberry_django.filter_field()
|
||||||
|
|||||||
@ -7,17 +7,13 @@ from strawberry.scalars import ID
|
|||||||
from strawberry_django import BaseFilterLookup, FilterLookup, DateFilterLookup
|
from strawberry_django import BaseFilterLookup, FilterLookup, DateFilterLookup
|
||||||
|
|
||||||
from circuits import models
|
from circuits import models
|
||||||
from core.graphql.filter_mixins import BaseObjectTypeFilterMixin, ChangeLogFilterMixin
|
from core.graphql.filter_mixins import BaseObjectTypeFilterMixin
|
||||||
from dcim.graphql.filter_mixins import CabledObjectModelFilterMixin
|
from dcim.graphql.filter_mixins import CabledObjectModelFilterMixin
|
||||||
from extras.graphql.filter_mixins import CustomFieldsFilterMixin, TagsFilterMixin
|
from extras.graphql.filter_mixins import CustomFieldsFilterMixin, TagsFilterMixin
|
||||||
from netbox.graphql.filter_mixins import (
|
from netbox.graphql.filter_mixins import DistanceFilterMixin, ImageAttachmentFilterMixin
|
||||||
DistanceFilterMixin,
|
from netbox.graphql.filters import ChangeLoggedModelFilter, OrganizationalModelFilter, PrimaryModelFilter
|
||||||
ImageAttachmentFilterMixin,
|
|
||||||
OrganizationalModelFilterMixin,
|
|
||||||
PrimaryModelFilterMixin,
|
|
||||||
)
|
|
||||||
from tenancy.graphql.filter_mixins import ContactFilterMixin, TenancyFilterMixin
|
from tenancy.graphql.filter_mixins import ContactFilterMixin, TenancyFilterMixin
|
||||||
from .filter_mixins import BaseCircuitTypeFilterMixin
|
from .filter_mixins import BaseCircuitTypeFilter
|
||||||
|
|
||||||
if TYPE_CHECKING:
|
if TYPE_CHECKING:
|
||||||
from core.graphql.filters import ContentTypeFilter
|
from core.graphql.filters import ContentTypeFilter
|
||||||
@ -46,7 +42,7 @@ class CircuitTerminationFilter(
|
|||||||
BaseObjectTypeFilterMixin,
|
BaseObjectTypeFilterMixin,
|
||||||
CustomFieldsFilterMixin,
|
CustomFieldsFilterMixin,
|
||||||
TagsFilterMixin,
|
TagsFilterMixin,
|
||||||
ChangeLogFilterMixin,
|
ChangeLoggedModelFilter,
|
||||||
CabledObjectModelFilterMixin,
|
CabledObjectModelFilterMixin,
|
||||||
):
|
):
|
||||||
circuit: Annotated['CircuitFilter', strawberry.lazy('circuits.graphql.filters')] | None = (
|
circuit: Annotated['CircuitFilter', strawberry.lazy('circuits.graphql.filters')] | None = (
|
||||||
@ -95,7 +91,7 @@ class CircuitFilter(
|
|||||||
ImageAttachmentFilterMixin,
|
ImageAttachmentFilterMixin,
|
||||||
DistanceFilterMixin,
|
DistanceFilterMixin,
|
||||||
TenancyFilterMixin,
|
TenancyFilterMixin,
|
||||||
PrimaryModelFilterMixin
|
PrimaryModelFilter
|
||||||
):
|
):
|
||||||
cid: FilterLookup[str] | None = strawberry_django.filter_field()
|
cid: FilterLookup[str] | None = strawberry_django.filter_field()
|
||||||
provider: Annotated['ProviderFilter', strawberry.lazy('circuits.graphql.filters')] | None = (
|
provider: Annotated['ProviderFilter', strawberry.lazy('circuits.graphql.filters')] | None = (
|
||||||
@ -124,18 +120,18 @@ class CircuitFilter(
|
|||||||
|
|
||||||
|
|
||||||
@strawberry_django.filter_type(models.CircuitType, lookups=True)
|
@strawberry_django.filter_type(models.CircuitType, lookups=True)
|
||||||
class CircuitTypeFilter(BaseCircuitTypeFilterMixin):
|
class CircuitTypeFilter(BaseCircuitTypeFilter):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
||||||
@strawberry_django.filter_type(models.CircuitGroup, lookups=True)
|
@strawberry_django.filter_type(models.CircuitGroup, lookups=True)
|
||||||
class CircuitGroupFilter(TenancyFilterMixin, OrganizationalModelFilterMixin):
|
class CircuitGroupFilter(TenancyFilterMixin, OrganizationalModelFilter):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
||||||
@strawberry_django.filter_type(models.CircuitGroupAssignment, lookups=True)
|
@strawberry_django.filter_type(models.CircuitGroupAssignment, lookups=True)
|
||||||
class CircuitGroupAssignmentFilter(
|
class CircuitGroupAssignmentFilter(
|
||||||
BaseObjectTypeFilterMixin, CustomFieldsFilterMixin, TagsFilterMixin, ChangeLogFilterMixin
|
BaseObjectTypeFilterMixin, CustomFieldsFilterMixin, TagsFilterMixin, ChangeLoggedModelFilter
|
||||||
):
|
):
|
||||||
member_type: Annotated['ContentTypeFilter', strawberry.lazy('core.graphql.filters')] | None = (
|
member_type: Annotated['ContentTypeFilter', strawberry.lazy('core.graphql.filters')] | None = (
|
||||||
strawberry_django.filter_field()
|
strawberry_django.filter_field()
|
||||||
@ -151,7 +147,7 @@ class CircuitGroupAssignmentFilter(
|
|||||||
|
|
||||||
|
|
||||||
@strawberry_django.filter_type(models.Provider, lookups=True)
|
@strawberry_django.filter_type(models.Provider, lookups=True)
|
||||||
class ProviderFilter(ContactFilterMixin, PrimaryModelFilterMixin):
|
class ProviderFilter(ContactFilterMixin, PrimaryModelFilter):
|
||||||
name: FilterLookup[str] | None = strawberry_django.filter_field()
|
name: FilterLookup[str] | None = strawberry_django.filter_field()
|
||||||
slug: FilterLookup[str] | None = strawberry_django.filter_field()
|
slug: FilterLookup[str] | None = strawberry_django.filter_field()
|
||||||
asns: Annotated['ASNFilter', strawberry.lazy('ipam.graphql.filters')] | None = strawberry_django.filter_field()
|
asns: Annotated['ASNFilter', strawberry.lazy('ipam.graphql.filters')] | None = strawberry_django.filter_field()
|
||||||
@ -161,7 +157,7 @@ class ProviderFilter(ContactFilterMixin, PrimaryModelFilterMixin):
|
|||||||
|
|
||||||
|
|
||||||
@strawberry_django.filter_type(models.ProviderAccount, lookups=True)
|
@strawberry_django.filter_type(models.ProviderAccount, lookups=True)
|
||||||
class ProviderAccountFilter(ContactFilterMixin, PrimaryModelFilterMixin):
|
class ProviderAccountFilter(ContactFilterMixin, PrimaryModelFilter):
|
||||||
provider: Annotated['ProviderFilter', strawberry.lazy('circuits.graphql.filters')] | None = (
|
provider: Annotated['ProviderFilter', strawberry.lazy('circuits.graphql.filters')] | None = (
|
||||||
strawberry_django.filter_field()
|
strawberry_django.filter_field()
|
||||||
)
|
)
|
||||||
@ -171,7 +167,7 @@ class ProviderAccountFilter(ContactFilterMixin, PrimaryModelFilterMixin):
|
|||||||
|
|
||||||
|
|
||||||
@strawberry_django.filter_type(models.ProviderNetwork, lookups=True)
|
@strawberry_django.filter_type(models.ProviderNetwork, lookups=True)
|
||||||
class ProviderNetworkFilter(PrimaryModelFilterMixin):
|
class ProviderNetworkFilter(PrimaryModelFilter):
|
||||||
name: FilterLookup[str] | None = strawberry_django.filter_field()
|
name: FilterLookup[str] | None = strawberry_django.filter_field()
|
||||||
provider: Annotated['ProviderFilter', strawberry.lazy('circuits.graphql.filters')] | None = (
|
provider: Annotated['ProviderFilter', strawberry.lazy('circuits.graphql.filters')] | None = (
|
||||||
strawberry_django.filter_field()
|
strawberry_django.filter_field()
|
||||||
@ -181,12 +177,12 @@ class ProviderNetworkFilter(PrimaryModelFilterMixin):
|
|||||||
|
|
||||||
|
|
||||||
@strawberry_django.filter_type(models.VirtualCircuitType, lookups=True)
|
@strawberry_django.filter_type(models.VirtualCircuitType, lookups=True)
|
||||||
class VirtualCircuitTypeFilter(BaseCircuitTypeFilterMixin):
|
class VirtualCircuitTypeFilter(BaseCircuitTypeFilter):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
||||||
@strawberry_django.filter_type(models.VirtualCircuit, lookups=True)
|
@strawberry_django.filter_type(models.VirtualCircuit, lookups=True)
|
||||||
class VirtualCircuitFilter(TenancyFilterMixin, PrimaryModelFilterMixin):
|
class VirtualCircuitFilter(TenancyFilterMixin, PrimaryModelFilter):
|
||||||
cid: FilterLookup[str] | None = strawberry_django.filter_field()
|
cid: FilterLookup[str] | None = strawberry_django.filter_field()
|
||||||
provider_network: Annotated['ProviderNetworkFilter', strawberry.lazy('circuits.graphql.filters')] | None = (
|
provider_network: Annotated['ProviderNetworkFilter', strawberry.lazy('circuits.graphql.filters')] | None = (
|
||||||
strawberry_django.filter_field()
|
strawberry_django.filter_field()
|
||||||
@ -210,7 +206,7 @@ class VirtualCircuitFilter(TenancyFilterMixin, PrimaryModelFilterMixin):
|
|||||||
|
|
||||||
@strawberry_django.filter_type(models.VirtualCircuitTermination, lookups=True)
|
@strawberry_django.filter_type(models.VirtualCircuitTermination, lookups=True)
|
||||||
class VirtualCircuitTerminationFilter(
|
class VirtualCircuitTerminationFilter(
|
||||||
BaseObjectTypeFilterMixin, CustomFieldsFilterMixin, TagsFilterMixin, ChangeLogFilterMixin
|
BaseObjectTypeFilterMixin, CustomFieldsFilterMixin, TagsFilterMixin, ChangeLoggedModelFilter
|
||||||
):
|
):
|
||||||
virtual_circuit: Annotated['VirtualCircuitFilter', strawberry.lazy('circuits.graphql.filters')] | None = (
|
virtual_circuit: Annotated['VirtualCircuitFilter', strawberry.lazy('circuits.graphql.filters')] | None = (
|
||||||
strawberry_django.filter_field()
|
strawberry_django.filter_field()
|
||||||
|
|||||||
@ -1,37 +1,19 @@
|
|||||||
from dataclasses import dataclass
|
from dataclasses import dataclass
|
||||||
from datetime import datetime
|
|
||||||
from typing import Annotated, TYPE_CHECKING
|
|
||||||
|
|
||||||
import strawberry
|
|
||||||
import strawberry_django
|
import strawberry_django
|
||||||
from strawberry import ID
|
from strawberry import ID
|
||||||
from strawberry_django import FilterLookup, DatetimeFilterLookup
|
from strawberry_django import FilterLookup
|
||||||
|
|
||||||
if TYPE_CHECKING:
|
|
||||||
from .filters import *
|
|
||||||
|
|
||||||
__all__ = (
|
__all__ = (
|
||||||
'BaseFilterMixin',
|
'BaseFilter',
|
||||||
'BaseObjectTypeFilterMixin',
|
'BaseObjectTypeFilterMixin',
|
||||||
'ChangeLogFilterMixin',
|
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
# @strawberry.input
|
# @strawberry.input
|
||||||
class BaseFilterMixin: ...
|
class BaseFilter: ...
|
||||||
|
|
||||||
|
|
||||||
@dataclass
|
@dataclass
|
||||||
class BaseObjectTypeFilterMixin(BaseFilterMixin):
|
class BaseObjectTypeFilterMixin(BaseFilter):
|
||||||
id: FilterLookup[ID] | None = strawberry_django.filter_field()
|
id: FilterLookup[ID] | None = strawberry_django.filter_field()
|
||||||
|
|
||||||
|
|
||||||
@dataclass
|
|
||||||
class ChangeLogFilterMixin(BaseFilterMixin):
|
|
||||||
id: FilterLookup[ID] | None = strawberry_django.filter_field()
|
|
||||||
# TODO: "changelog" is not a valid field name; needs to be updated for ObjectChange
|
|
||||||
changelog: Annotated['ObjectChangeFilter', strawberry.lazy('core.graphql.filters')] | None = (
|
|
||||||
strawberry_django.filter_field()
|
|
||||||
)
|
|
||||||
created: DatetimeFilterLookup[datetime] | None = strawberry_django.filter_field()
|
|
||||||
last_updated: DatetimeFilterLookup[datetime] | None = strawberry_django.filter_field()
|
|
||||||
|
|||||||
@ -8,8 +8,8 @@ from strawberry.scalars import ID
|
|||||||
from strawberry_django import BaseFilterLookup, DatetimeFilterLookup, FilterLookup
|
from strawberry_django import BaseFilterLookup, DatetimeFilterLookup, FilterLookup
|
||||||
|
|
||||||
from core import models
|
from core import models
|
||||||
from core.graphql.filter_mixins import BaseFilterMixin
|
from core.graphql.filter_mixins import BaseObjectTypeFilterMixin
|
||||||
from netbox.graphql.filter_mixins import PrimaryModelFilterMixin
|
from netbox.graphql.filters import PrimaryModelFilter
|
||||||
from .enums import *
|
from .enums import *
|
||||||
|
|
||||||
if TYPE_CHECKING:
|
if TYPE_CHECKING:
|
||||||
@ -25,8 +25,7 @@ __all__ = (
|
|||||||
|
|
||||||
|
|
||||||
@strawberry_django.filter_type(models.DataFile, lookups=True)
|
@strawberry_django.filter_type(models.DataFile, lookups=True)
|
||||||
class DataFileFilter(BaseFilterMixin):
|
class DataFileFilter(BaseObjectTypeFilterMixin):
|
||||||
id: FilterLookup[ID] | None = strawberry_django.filter_field()
|
|
||||||
created: DatetimeFilterLookup[datetime] | None = strawberry_django.filter_field()
|
created: DatetimeFilterLookup[datetime] | None = strawberry_django.filter_field()
|
||||||
last_updated: DatetimeFilterLookup[datetime] | None = strawberry_django.filter_field()
|
last_updated: DatetimeFilterLookup[datetime] | None = strawberry_django.filter_field()
|
||||||
source: Annotated['DataSourceFilter', strawberry.lazy('core.graphql.filters')] | None = (
|
source: Annotated['DataSourceFilter', strawberry.lazy('core.graphql.filters')] | None = (
|
||||||
@ -41,7 +40,7 @@ class DataFileFilter(BaseFilterMixin):
|
|||||||
|
|
||||||
|
|
||||||
@strawberry_django.filter_type(models.DataSource, lookups=True)
|
@strawberry_django.filter_type(models.DataSource, lookups=True)
|
||||||
class DataSourceFilter(PrimaryModelFilterMixin):
|
class DataSourceFilter(PrimaryModelFilter):
|
||||||
name: FilterLookup[str] | None = strawberry_django.filter_field()
|
name: FilterLookup[str] | None = strawberry_django.filter_field()
|
||||||
type: FilterLookup[str] | None = strawberry_django.filter_field()
|
type: FilterLookup[str] | None = strawberry_django.filter_field()
|
||||||
source_url: FilterLookup[str] | None = strawberry_django.filter_field()
|
source_url: FilterLookup[str] | None = strawberry_django.filter_field()
|
||||||
@ -60,8 +59,7 @@ class DataSourceFilter(PrimaryModelFilterMixin):
|
|||||||
|
|
||||||
|
|
||||||
@strawberry_django.filter_type(models.ObjectChange, lookups=True)
|
@strawberry_django.filter_type(models.ObjectChange, lookups=True)
|
||||||
class ObjectChangeFilter(BaseFilterMixin):
|
class ObjectChangeFilter(BaseObjectTypeFilterMixin):
|
||||||
id: FilterLookup[ID] | None = strawberry_django.filter_field()
|
|
||||||
time: DatetimeFilterLookup[datetime] | None = strawberry_django.filter_field()
|
time: DatetimeFilterLookup[datetime] | None = strawberry_django.filter_field()
|
||||||
user: Annotated['UserFilter', strawberry.lazy('users.graphql.filters')] | None = strawberry_django.filter_field()
|
user: Annotated['UserFilter', strawberry.lazy('users.graphql.filters')] | None = strawberry_django.filter_field()
|
||||||
user_name: FilterLookup[str] | None = strawberry_django.filter_field()
|
user_name: FilterLookup[str] | None = strawberry_django.filter_field()
|
||||||
@ -88,7 +86,6 @@ class ObjectChangeFilter(BaseFilterMixin):
|
|||||||
|
|
||||||
|
|
||||||
@strawberry_django.filter_type(DjangoContentType, lookups=True)
|
@strawberry_django.filter_type(DjangoContentType, lookups=True)
|
||||||
class ContentTypeFilter(BaseFilterMixin):
|
class ContentTypeFilter(BaseObjectTypeFilterMixin):
|
||||||
id: FilterLookup[ID] | None = strawberry_django.filter_field()
|
|
||||||
app_label: FilterLookup[str] | None = strawberry_django.filter_field()
|
app_label: FilterLookup[str] | None = strawberry_django.filter_field()
|
||||||
model: FilterLookup[str] | None = strawberry_django.filter_field()
|
model: FilterLookup[str] | None = strawberry_django.filter_field()
|
||||||
|
|||||||
@ -6,9 +6,10 @@ import strawberry_django
|
|||||||
from strawberry import ID
|
from strawberry import ID
|
||||||
from strawberry_django import BaseFilterLookup, FilterLookup
|
from strawberry_django import BaseFilterLookup, FilterLookup
|
||||||
|
|
||||||
from core.graphql.filter_mixins import BaseFilterMixin, ChangeLogFilterMixin
|
from core.graphql.filter_mixins import BaseFilter
|
||||||
from core.graphql.filters import ContentTypeFilter
|
from core.graphql.filters import ContentTypeFilter
|
||||||
from netbox.graphql.filter_mixins import NetBoxModelFilterMixin, PrimaryModelFilterMixin, WeightFilterMixin
|
from netbox.graphql.filter_mixins import WeightFilterMixin
|
||||||
|
from netbox.graphql.filters import ChangeLoggedModelFilter, NetBoxModelFilter, PrimaryModelFilter
|
||||||
from .enums import *
|
from .enums import *
|
||||||
|
|
||||||
if TYPE_CHECKING:
|
if TYPE_CHECKING:
|
||||||
@ -19,19 +20,19 @@ if TYPE_CHECKING:
|
|||||||
|
|
||||||
__all__ = (
|
__all__ = (
|
||||||
'CabledObjectModelFilterMixin',
|
'CabledObjectModelFilterMixin',
|
||||||
'ComponentModelFilterMixin',
|
'ComponentModelFilter',
|
||||||
'ComponentTemplateFilterMixin',
|
'ComponentTemplateFilter',
|
||||||
'InterfaceBaseFilterMixin',
|
'InterfaceBaseFilterMixin',
|
||||||
'ModularComponentModelFilterMixin',
|
'ModularComponentModelFilter',
|
||||||
'ModularComponentTemplateFilterMixin',
|
'ModularComponentTemplateFilter',
|
||||||
'RackBaseFilterMixin',
|
'RackBaseFilter',
|
||||||
'RenderConfigFilterMixin',
|
'RenderConfigFilterMixin',
|
||||||
'ScopedFilterMixin',
|
'ScopedFilterMixin',
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@dataclass
|
@dataclass
|
||||||
class ScopedFilterMixin(BaseFilterMixin):
|
class ScopedFilterMixin(BaseFilter):
|
||||||
scope_type: Annotated['ContentTypeFilter', strawberry.lazy('core.graphql.filters')] | None = (
|
scope_type: Annotated['ContentTypeFilter', strawberry.lazy('core.graphql.filters')] | None = (
|
||||||
strawberry_django.filter_field()
|
strawberry_django.filter_field()
|
||||||
)
|
)
|
||||||
@ -39,7 +40,7 @@ class ScopedFilterMixin(BaseFilterMixin):
|
|||||||
|
|
||||||
|
|
||||||
@dataclass
|
@dataclass
|
||||||
class ComponentModelFilterMixin(NetBoxModelFilterMixin):
|
class ComponentModelFilter(NetBoxModelFilter):
|
||||||
device: Annotated['DeviceFilter', strawberry.lazy('dcim.graphql.filters')] | None = strawberry_django.filter_field()
|
device: Annotated['DeviceFilter', strawberry.lazy('dcim.graphql.filters')] | None = strawberry_django.filter_field()
|
||||||
device_id: ID | None = strawberry_django.filter_field()
|
device_id: ID | None = strawberry_django.filter_field()
|
||||||
name: FilterLookup[str] | None = strawberry_django.filter_field()
|
name: FilterLookup[str] | None = strawberry_django.filter_field()
|
||||||
@ -48,7 +49,7 @@ class ComponentModelFilterMixin(NetBoxModelFilterMixin):
|
|||||||
|
|
||||||
|
|
||||||
@dataclass
|
@dataclass
|
||||||
class ModularComponentModelFilterMixin(ComponentModelFilterMixin):
|
class ModularComponentModelFilter(ComponentModelFilter):
|
||||||
module: Annotated['ModuleFilter', strawberry.lazy('dcim.graphql.filters')] | None = strawberry_django.filter_field()
|
module: Annotated['ModuleFilter', strawberry.lazy('dcim.graphql.filters')] | None = strawberry_django.filter_field()
|
||||||
module_id: ID | None = strawberry_django.filter_field()
|
module_id: ID | None = strawberry_django.filter_field()
|
||||||
inventory_items: Annotated['InventoryItemFilter', strawberry.lazy('dcim.graphql.filters')] | None = (
|
inventory_items: Annotated['InventoryItemFilter', strawberry.lazy('dcim.graphql.filters')] | None = (
|
||||||
@ -57,7 +58,7 @@ class ModularComponentModelFilterMixin(ComponentModelFilterMixin):
|
|||||||
|
|
||||||
|
|
||||||
@dataclass
|
@dataclass
|
||||||
class CabledObjectModelFilterMixin(BaseFilterMixin):
|
class CabledObjectModelFilterMixin(BaseFilter):
|
||||||
cable: Annotated['CableFilter', strawberry.lazy('dcim.graphql.filters')] | None = strawberry_django.filter_field()
|
cable: Annotated['CableFilter', strawberry.lazy('dcim.graphql.filters')] | None = strawberry_django.filter_field()
|
||||||
cable_id: ID | None = strawberry_django.filter_field()
|
cable_id: ID | None = strawberry_django.filter_field()
|
||||||
cable_end: (
|
cable_end: (
|
||||||
@ -67,7 +68,7 @@ class CabledObjectModelFilterMixin(BaseFilterMixin):
|
|||||||
|
|
||||||
|
|
||||||
@dataclass
|
@dataclass
|
||||||
class ComponentTemplateFilterMixin(ChangeLogFilterMixin):
|
class ComponentTemplateFilter(ChangeLoggedModelFilter):
|
||||||
device_type: Annotated['DeviceTypeFilter', strawberry.lazy('dcim.graphql.filters')] | None = (
|
device_type: Annotated['DeviceTypeFilter', strawberry.lazy('dcim.graphql.filters')] | None = (
|
||||||
strawberry_django.filter_field()
|
strawberry_django.filter_field()
|
||||||
)
|
)
|
||||||
@ -78,14 +79,14 @@ class ComponentTemplateFilterMixin(ChangeLogFilterMixin):
|
|||||||
|
|
||||||
|
|
||||||
@dataclass
|
@dataclass
|
||||||
class ModularComponentTemplateFilterMixin(ComponentTemplateFilterMixin):
|
class ModularComponentTemplateFilter(ComponentTemplateFilter):
|
||||||
module_type: Annotated['ModuleTypeFilter', strawberry.lazy('dcim.graphql.filters')] | None = (
|
module_type: Annotated['ModuleTypeFilter', strawberry.lazy('dcim.graphql.filters')] | None = (
|
||||||
strawberry_django.filter_field()
|
strawberry_django.filter_field()
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@dataclass
|
@dataclass
|
||||||
class RenderConfigFilterMixin(BaseFilterMixin):
|
class RenderConfigFilterMixin(BaseFilter):
|
||||||
config_template: Annotated['ConfigTemplateFilter', strawberry.lazy('extras.graphql.filters')] | None = (
|
config_template: Annotated['ConfigTemplateFilter', strawberry.lazy('extras.graphql.filters')] | None = (
|
||||||
strawberry_django.filter_field()
|
strawberry_django.filter_field()
|
||||||
)
|
)
|
||||||
@ -93,7 +94,7 @@ class RenderConfigFilterMixin(BaseFilterMixin):
|
|||||||
|
|
||||||
|
|
||||||
@dataclass
|
@dataclass
|
||||||
class InterfaceBaseFilterMixin(BaseFilterMixin):
|
class InterfaceBaseFilterMixin(BaseFilter):
|
||||||
enabled: FilterLookup[bool] | None = strawberry_django.filter_field()
|
enabled: FilterLookup[bool] | None = strawberry_django.filter_field()
|
||||||
mtu: Annotated['IntegerLookup', strawberry.lazy('netbox.graphql.filter_lookups')] | None = (
|
mtu: Annotated['IntegerLookup', strawberry.lazy('netbox.graphql.filter_lookups')] | None = (
|
||||||
strawberry_django.filter_field()
|
strawberry_django.filter_field()
|
||||||
@ -124,7 +125,7 @@ class InterfaceBaseFilterMixin(BaseFilterMixin):
|
|||||||
|
|
||||||
|
|
||||||
@dataclass
|
@dataclass
|
||||||
class RackBaseFilterMixin(WeightFilterMixin, PrimaryModelFilterMixin):
|
class RackBaseFilter(WeightFilterMixin, PrimaryModelFilter):
|
||||||
width: BaseFilterLookup[Annotated['RackWidthEnum', strawberry.lazy('dcim.graphql.enums')]] | None = (
|
width: BaseFilterLookup[Annotated['RackWidthEnum', strawberry.lazy('dcim.graphql.enums')]] | None = (
|
||||||
strawberry_django.filter_field()
|
strawberry_django.filter_field()
|
||||||
)
|
)
|
||||||
|
|||||||
@ -6,29 +6,25 @@ import strawberry_django
|
|||||||
from strawberry.scalars import ID
|
from strawberry.scalars import ID
|
||||||
from strawberry_django import BaseFilterLookup, ComparisonFilterLookup, FilterLookup
|
from strawberry_django import BaseFilterLookup, ComparisonFilterLookup, FilterLookup
|
||||||
|
|
||||||
from core.graphql.filter_mixins import ChangeLogFilterMixin
|
|
||||||
from dcim import models
|
from dcim import models
|
||||||
from dcim.constants import *
|
from dcim.constants import *
|
||||||
from dcim.graphql.enums import InterfaceKindEnum
|
from dcim.graphql.enums import InterfaceKindEnum
|
||||||
from extras.graphql.filter_mixins import ConfigContextFilterMixin
|
from extras.graphql.filter_mixins import ConfigContextFilterMixin
|
||||||
from netbox.graphql.filter_mixins import (
|
from netbox.graphql.filter_mixins import ImageAttachmentFilterMixin, WeightFilterMixin
|
||||||
PrimaryModelFilterMixin,
|
from netbox.graphql.filters import (
|
||||||
OrganizationalModelFilterMixin,
|
ChangeLoggedModelFilter, NestedGroupModelFilter, OrganizationalModelFilter, PrimaryModelFilter,
|
||||||
NestedGroupModelFilterMixin,
|
|
||||||
ImageAttachmentFilterMixin,
|
|
||||||
WeightFilterMixin,
|
|
||||||
)
|
)
|
||||||
from tenancy.graphql.filter_mixins import ContactFilterMixin, TenancyFilterMixin
|
from tenancy.graphql.filter_mixins import ContactFilterMixin, TenancyFilterMixin
|
||||||
from virtualization.models import VMInterface
|
from virtualization.models import VMInterface
|
||||||
|
|
||||||
from .filter_mixins import (
|
from .filter_mixins import (
|
||||||
CabledObjectModelFilterMixin,
|
CabledObjectModelFilterMixin,
|
||||||
ComponentModelFilterMixin,
|
ComponentModelFilter,
|
||||||
ComponentTemplateFilterMixin,
|
ComponentTemplateFilter,
|
||||||
InterfaceBaseFilterMixin,
|
InterfaceBaseFilterMixin,
|
||||||
ModularComponentModelFilterMixin,
|
ModularComponentModelFilter,
|
||||||
ModularComponentTemplateFilterMixin,
|
ModularComponentTemplateFilter,
|
||||||
RackBaseFilterMixin,
|
RackBaseFilter,
|
||||||
RenderConfigFilterMixin,
|
RenderConfigFilterMixin,
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -96,7 +92,7 @@ __all__ = (
|
|||||||
|
|
||||||
|
|
||||||
@strawberry_django.filter_type(models.Cable, lookups=True)
|
@strawberry_django.filter_type(models.Cable, lookups=True)
|
||||||
class CableFilter(PrimaryModelFilterMixin, TenancyFilterMixin):
|
class CableFilter(PrimaryModelFilter, TenancyFilterMixin):
|
||||||
type: BaseFilterLookup[Annotated['CableTypeEnum', strawberry.lazy('dcim.graphql.enums')]] | None = (
|
type: BaseFilterLookup[Annotated['CableTypeEnum', strawberry.lazy('dcim.graphql.enums')]] | None = (
|
||||||
strawberry_django.filter_field()
|
strawberry_django.filter_field()
|
||||||
)
|
)
|
||||||
@ -119,7 +115,7 @@ class CableFilter(PrimaryModelFilterMixin, TenancyFilterMixin):
|
|||||||
|
|
||||||
|
|
||||||
@strawberry_django.filter_type(models.CableTermination, lookups=True)
|
@strawberry_django.filter_type(models.CableTermination, lookups=True)
|
||||||
class CableTerminationFilter(ChangeLogFilterMixin):
|
class CableTerminationFilter(ChangeLoggedModelFilter):
|
||||||
cable: Annotated['CableFilter', strawberry.lazy('dcim.graphql.filters')] | None = strawberry_django.filter_field()
|
cable: Annotated['CableFilter', strawberry.lazy('dcim.graphql.filters')] | None = strawberry_django.filter_field()
|
||||||
cable_id: ID | None = strawberry_django.filter_field()
|
cable_id: ID | None = strawberry_django.filter_field()
|
||||||
cable_end: BaseFilterLookup[Annotated['CableEndEnum', strawberry.lazy('dcim.graphql.enums')]] | None = (
|
cable_end: BaseFilterLookup[Annotated['CableEndEnum', strawberry.lazy('dcim.graphql.enums')]] | None = (
|
||||||
@ -132,7 +128,7 @@ class CableTerminationFilter(ChangeLogFilterMixin):
|
|||||||
|
|
||||||
|
|
||||||
@strawberry_django.filter_type(models.ConsolePort, lookups=True)
|
@strawberry_django.filter_type(models.ConsolePort, lookups=True)
|
||||||
class ConsolePortFilter(ModularComponentModelFilterMixin, CabledObjectModelFilterMixin):
|
class ConsolePortFilter(ModularComponentModelFilter, CabledObjectModelFilterMixin):
|
||||||
type: BaseFilterLookup[Annotated['ConsolePortTypeEnum', strawberry.lazy('dcim.graphql.enums')]] | None = (
|
type: BaseFilterLookup[Annotated['ConsolePortTypeEnum', strawberry.lazy('dcim.graphql.enums')]] | None = (
|
||||||
strawberry_django.filter_field()
|
strawberry_django.filter_field()
|
||||||
)
|
)
|
||||||
@ -142,14 +138,14 @@ class ConsolePortFilter(ModularComponentModelFilterMixin, CabledObjectModelFilte
|
|||||||
|
|
||||||
|
|
||||||
@strawberry_django.filter_type(models.ConsolePortTemplate, lookups=True)
|
@strawberry_django.filter_type(models.ConsolePortTemplate, lookups=True)
|
||||||
class ConsolePortTemplateFilter(ModularComponentTemplateFilterMixin):
|
class ConsolePortTemplateFilter(ModularComponentTemplateFilter):
|
||||||
type: BaseFilterLookup[Annotated['ConsolePortTypeEnum', strawberry.lazy('dcim.graphql.enums')]] | None = (
|
type: BaseFilterLookup[Annotated['ConsolePortTypeEnum', strawberry.lazy('dcim.graphql.enums')]] | None = (
|
||||||
strawberry_django.filter_field()
|
strawberry_django.filter_field()
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@strawberry_django.filter_type(models.ConsoleServerPort, lookups=True)
|
@strawberry_django.filter_type(models.ConsoleServerPort, lookups=True)
|
||||||
class ConsoleServerPortFilter(ModularComponentModelFilterMixin, CabledObjectModelFilterMixin):
|
class ConsoleServerPortFilter(ModularComponentModelFilter, CabledObjectModelFilterMixin):
|
||||||
type: BaseFilterLookup[Annotated['ConsolePortTypeEnum', strawberry.lazy('dcim.graphql.enums')]] | None = (
|
type: BaseFilterLookup[Annotated['ConsolePortTypeEnum', strawberry.lazy('dcim.graphql.enums')]] | None = (
|
||||||
strawberry_django.filter_field()
|
strawberry_django.filter_field()
|
||||||
)
|
)
|
||||||
@ -159,7 +155,7 @@ class ConsoleServerPortFilter(ModularComponentModelFilterMixin, CabledObjectMode
|
|||||||
|
|
||||||
|
|
||||||
@strawberry_django.filter_type(models.ConsoleServerPortTemplate, lookups=True)
|
@strawberry_django.filter_type(models.ConsoleServerPortTemplate, lookups=True)
|
||||||
class ConsoleServerPortTemplateFilter(ModularComponentTemplateFilterMixin):
|
class ConsoleServerPortTemplateFilter(ModularComponentTemplateFilter):
|
||||||
type: BaseFilterLookup[Annotated['ConsolePortTypeEnum', strawberry.lazy('dcim.graphql.enums')]] | None = (
|
type: BaseFilterLookup[Annotated['ConsolePortTypeEnum', strawberry.lazy('dcim.graphql.enums')]] | None = (
|
||||||
strawberry_django.filter_field()
|
strawberry_django.filter_field()
|
||||||
)
|
)
|
||||||
@ -172,7 +168,7 @@ class DeviceFilter(
|
|||||||
ImageAttachmentFilterMixin,
|
ImageAttachmentFilterMixin,
|
||||||
RenderConfigFilterMixin,
|
RenderConfigFilterMixin,
|
||||||
ConfigContextFilterMixin,
|
ConfigContextFilterMixin,
|
||||||
PrimaryModelFilterMixin,
|
PrimaryModelFilter,
|
||||||
):
|
):
|
||||||
device_type: Annotated['DeviceTypeFilter', strawberry.lazy('dcim.graphql.filters')] | None = (
|
device_type: Annotated['DeviceTypeFilter', strawberry.lazy('dcim.graphql.filters')] | None = (
|
||||||
strawberry_django.filter_field()
|
strawberry_django.filter_field()
|
||||||
@ -285,7 +281,7 @@ class DeviceFilter(
|
|||||||
|
|
||||||
|
|
||||||
@strawberry_django.filter_type(models.DeviceBay, lookups=True)
|
@strawberry_django.filter_type(models.DeviceBay, lookups=True)
|
||||||
class DeviceBayFilter(ComponentModelFilterMixin):
|
class DeviceBayFilter(ComponentModelFilter):
|
||||||
installed_device: Annotated['DeviceFilter', strawberry.lazy('dcim.graphql.filters')] | None = (
|
installed_device: Annotated['DeviceFilter', strawberry.lazy('dcim.graphql.filters')] | None = (
|
||||||
strawberry_django.filter_field()
|
strawberry_django.filter_field()
|
||||||
)
|
)
|
||||||
@ -293,12 +289,12 @@ class DeviceBayFilter(ComponentModelFilterMixin):
|
|||||||
|
|
||||||
|
|
||||||
@strawberry_django.filter_type(models.DeviceBayTemplate, lookups=True)
|
@strawberry_django.filter_type(models.DeviceBayTemplate, lookups=True)
|
||||||
class DeviceBayTemplateFilter(ComponentTemplateFilterMixin):
|
class DeviceBayTemplateFilter(ComponentTemplateFilter):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
||||||
@strawberry_django.filter_type(models.InventoryItemTemplate, lookups=True)
|
@strawberry_django.filter_type(models.InventoryItemTemplate, lookups=True)
|
||||||
class InventoryItemTemplateFilter(ComponentTemplateFilterMixin):
|
class InventoryItemTemplateFilter(ComponentTemplateFilter):
|
||||||
parent: Annotated['InventoryItemTemplateFilter', strawberry.lazy('dcim.graphql.filters')] | None = (
|
parent: Annotated['InventoryItemTemplateFilter', strawberry.lazy('dcim.graphql.filters')] | None = (
|
||||||
strawberry_django.filter_field()
|
strawberry_django.filter_field()
|
||||||
)
|
)
|
||||||
@ -318,7 +314,7 @@ class InventoryItemTemplateFilter(ComponentTemplateFilterMixin):
|
|||||||
|
|
||||||
|
|
||||||
@strawberry_django.filter_type(models.DeviceRole, lookups=True)
|
@strawberry_django.filter_type(models.DeviceRole, lookups=True)
|
||||||
class DeviceRoleFilter(OrganizationalModelFilterMixin, RenderConfigFilterMixin):
|
class DeviceRoleFilter(OrganizationalModelFilter, RenderConfigFilterMixin):
|
||||||
color: BaseFilterLookup[Annotated['ColorEnum', strawberry.lazy('netbox.graphql.enums')]] | None = (
|
color: BaseFilterLookup[Annotated['ColorEnum', strawberry.lazy('netbox.graphql.enums')]] | None = (
|
||||||
strawberry_django.filter_field()
|
strawberry_django.filter_field()
|
||||||
)
|
)
|
||||||
@ -326,7 +322,7 @@ class DeviceRoleFilter(OrganizationalModelFilterMixin, RenderConfigFilterMixin):
|
|||||||
|
|
||||||
|
|
||||||
@strawberry_django.filter_type(models.DeviceType, lookups=True)
|
@strawberry_django.filter_type(models.DeviceType, lookups=True)
|
||||||
class DeviceTypeFilter(ImageAttachmentFilterMixin, PrimaryModelFilterMixin, WeightFilterMixin):
|
class DeviceTypeFilter(ImageAttachmentFilterMixin, PrimaryModelFilter, WeightFilterMixin):
|
||||||
manufacturer: Annotated['ManufacturerFilter', strawberry.lazy('dcim.graphql.filters')] | None = (
|
manufacturer: Annotated['ManufacturerFilter', strawberry.lazy('dcim.graphql.filters')] | None = (
|
||||||
strawberry_django.filter_field()
|
strawberry_django.filter_field()
|
||||||
)
|
)
|
||||||
@ -402,7 +398,7 @@ class DeviceTypeFilter(ImageAttachmentFilterMixin, PrimaryModelFilterMixin, Weig
|
|||||||
|
|
||||||
|
|
||||||
@strawberry_django.filter_type(models.FrontPort, lookups=True)
|
@strawberry_django.filter_type(models.FrontPort, lookups=True)
|
||||||
class FrontPortFilter(ModularComponentModelFilterMixin, CabledObjectModelFilterMixin):
|
class FrontPortFilter(ModularComponentModelFilter, CabledObjectModelFilterMixin):
|
||||||
type: BaseFilterLookup[Annotated['PortTypeEnum', strawberry.lazy('dcim.graphql.enums')]] | None = (
|
type: BaseFilterLookup[Annotated['PortTypeEnum', strawberry.lazy('dcim.graphql.enums')]] | None = (
|
||||||
strawberry_django.filter_field()
|
strawberry_django.filter_field()
|
||||||
)
|
)
|
||||||
@ -419,7 +415,7 @@ class FrontPortFilter(ModularComponentModelFilterMixin, CabledObjectModelFilterM
|
|||||||
|
|
||||||
|
|
||||||
@strawberry_django.filter_type(models.FrontPortTemplate, lookups=True)
|
@strawberry_django.filter_type(models.FrontPortTemplate, lookups=True)
|
||||||
class FrontPortTemplateFilter(ModularComponentTemplateFilterMixin):
|
class FrontPortTemplateFilter(ModularComponentTemplateFilter):
|
||||||
type: BaseFilterLookup[Annotated['PortTypeEnum', strawberry.lazy('dcim.graphql.enums')]] | None = (
|
type: BaseFilterLookup[Annotated['PortTypeEnum', strawberry.lazy('dcim.graphql.enums')]] | None = (
|
||||||
strawberry_django.filter_field()
|
strawberry_django.filter_field()
|
||||||
)
|
)
|
||||||
@ -436,7 +432,7 @@ class FrontPortTemplateFilter(ModularComponentTemplateFilterMixin):
|
|||||||
|
|
||||||
|
|
||||||
@strawberry_django.filter_type(models.MACAddress, lookups=True)
|
@strawberry_django.filter_type(models.MACAddress, lookups=True)
|
||||||
class MACAddressFilter(PrimaryModelFilterMixin):
|
class MACAddressFilter(PrimaryModelFilter):
|
||||||
mac_address: FilterLookup[str] | None = strawberry_django.filter_field()
|
mac_address: FilterLookup[str] | None = strawberry_django.filter_field()
|
||||||
assigned_object_type: Annotated['ContentTypeFilter', strawberry.lazy('core.graphql.filters')] | None = (
|
assigned_object_type: Annotated['ContentTypeFilter', strawberry.lazy('core.graphql.filters')] | None = (
|
||||||
strawberry_django.filter_field()
|
strawberry_django.filter_field()
|
||||||
@ -463,7 +459,7 @@ class MACAddressFilter(PrimaryModelFilterMixin):
|
|||||||
|
|
||||||
|
|
||||||
@strawberry_django.filter_type(models.Interface, lookups=True)
|
@strawberry_django.filter_type(models.Interface, lookups=True)
|
||||||
class InterfaceFilter(ModularComponentModelFilterMixin, InterfaceBaseFilterMixin, CabledObjectModelFilterMixin):
|
class InterfaceFilter(ModularComponentModelFilter, InterfaceBaseFilterMixin, CabledObjectModelFilterMixin):
|
||||||
vcdcs: Annotated['VirtualDeviceContextFilter', strawberry.lazy('dcim.graphql.filters')] | None = (
|
vcdcs: Annotated['VirtualDeviceContextFilter', strawberry.lazy('dcim.graphql.filters')] | None = (
|
||||||
strawberry_django.filter_field()
|
strawberry_django.filter_field()
|
||||||
)
|
)
|
||||||
@ -553,7 +549,7 @@ class InterfaceFilter(ModularComponentModelFilterMixin, InterfaceBaseFilterMixin
|
|||||||
|
|
||||||
|
|
||||||
@strawberry_django.filter_type(models.InterfaceTemplate, lookups=True)
|
@strawberry_django.filter_type(models.InterfaceTemplate, lookups=True)
|
||||||
class InterfaceTemplateFilter(ModularComponentTemplateFilterMixin):
|
class InterfaceTemplateFilter(ModularComponentTemplateFilter):
|
||||||
type: BaseFilterLookup[Annotated['InterfaceTypeEnum', strawberry.lazy('dcim.graphql.enums')]] | None = (
|
type: BaseFilterLookup[Annotated['InterfaceTypeEnum', strawberry.lazy('dcim.graphql.enums')]] | None = (
|
||||||
strawberry_django.filter_field()
|
strawberry_django.filter_field()
|
||||||
)
|
)
|
||||||
@ -575,7 +571,7 @@ class InterfaceTemplateFilter(ModularComponentTemplateFilterMixin):
|
|||||||
|
|
||||||
|
|
||||||
@strawberry_django.filter_type(models.InventoryItem, lookups=True)
|
@strawberry_django.filter_type(models.InventoryItem, lookups=True)
|
||||||
class InventoryItemFilter(ComponentModelFilterMixin):
|
class InventoryItemFilter(ComponentModelFilter):
|
||||||
parent: Annotated['InventoryItemFilter', strawberry.lazy('dcim.graphql.filters')] | None = (
|
parent: Annotated['InventoryItemFilter', strawberry.lazy('dcim.graphql.filters')] | None = (
|
||||||
strawberry_django.filter_field()
|
strawberry_django.filter_field()
|
||||||
)
|
)
|
||||||
@ -602,14 +598,14 @@ class InventoryItemFilter(ComponentModelFilterMixin):
|
|||||||
|
|
||||||
|
|
||||||
@strawberry_django.filter_type(models.InventoryItemRole, lookups=True)
|
@strawberry_django.filter_type(models.InventoryItemRole, lookups=True)
|
||||||
class InventoryItemRoleFilter(OrganizationalModelFilterMixin):
|
class InventoryItemRoleFilter(OrganizationalModelFilter):
|
||||||
color: BaseFilterLookup[Annotated['ColorEnum', strawberry.lazy('netbox.graphql.enums')]] | None = (
|
color: BaseFilterLookup[Annotated['ColorEnum', strawberry.lazy('netbox.graphql.enums')]] | None = (
|
||||||
strawberry_django.filter_field()
|
strawberry_django.filter_field()
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@strawberry_django.filter_type(models.Location, lookups=True)
|
@strawberry_django.filter_type(models.Location, lookups=True)
|
||||||
class LocationFilter(ContactFilterMixin, ImageAttachmentFilterMixin, TenancyFilterMixin, NestedGroupModelFilterMixin):
|
class LocationFilter(ContactFilterMixin, ImageAttachmentFilterMixin, TenancyFilterMixin, NestedGroupModelFilter):
|
||||||
site: Annotated['SiteFilter', strawberry.lazy('dcim.graphql.filters')] | None = strawberry_django.filter_field()
|
site: Annotated['SiteFilter', strawberry.lazy('dcim.graphql.filters')] | None = strawberry_django.filter_field()
|
||||||
site_id: ID | None = strawberry_django.filter_field()
|
site_id: ID | None = strawberry_django.filter_field()
|
||||||
status: BaseFilterLookup[Annotated['LocationStatusEnum', strawberry.lazy('dcim.graphql.enums')]] | None = (
|
status: BaseFilterLookup[Annotated['LocationStatusEnum', strawberry.lazy('dcim.graphql.enums')]] | None = (
|
||||||
@ -625,12 +621,12 @@ class LocationFilter(ContactFilterMixin, ImageAttachmentFilterMixin, TenancyFilt
|
|||||||
|
|
||||||
|
|
||||||
@strawberry_django.filter_type(models.Manufacturer, lookups=True)
|
@strawberry_django.filter_type(models.Manufacturer, lookups=True)
|
||||||
class ManufacturerFilter(ContactFilterMixin, OrganizationalModelFilterMixin):
|
class ManufacturerFilter(ContactFilterMixin, OrganizationalModelFilter):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
||||||
@strawberry_django.filter_type(models.Module, lookups=True)
|
@strawberry_django.filter_type(models.Module, lookups=True)
|
||||||
class ModuleFilter(PrimaryModelFilterMixin, ConfigContextFilterMixin):
|
class ModuleFilter(PrimaryModelFilter, ConfigContextFilterMixin):
|
||||||
device: Annotated['DeviceFilter', strawberry.lazy('dcim.graphql.filters')] | None = strawberry_django.filter_field()
|
device: Annotated['DeviceFilter', strawberry.lazy('dcim.graphql.filters')] | None = strawberry_django.filter_field()
|
||||||
device_id: ID | None = strawberry_django.filter_field()
|
device_id: ID | None = strawberry_django.filter_field()
|
||||||
module_bay: Annotated['ModuleBayFilter', strawberry.lazy('dcim.graphql.filters')] | None = (
|
module_bay: Annotated['ModuleBayFilter', strawberry.lazy('dcim.graphql.filters')] | None = (
|
||||||
@ -679,7 +675,7 @@ class ModuleFilter(PrimaryModelFilterMixin, ConfigContextFilterMixin):
|
|||||||
|
|
||||||
|
|
||||||
@strawberry_django.filter_type(models.ModuleBay, lookups=True)
|
@strawberry_django.filter_type(models.ModuleBay, lookups=True)
|
||||||
class ModuleBayFilter(ModularComponentModelFilterMixin):
|
class ModuleBayFilter(ModularComponentModelFilter):
|
||||||
parent: Annotated['ModuleBayFilter', strawberry.lazy('dcim.graphql.filters')] | None = (
|
parent: Annotated['ModuleBayFilter', strawberry.lazy('dcim.graphql.filters')] | None = (
|
||||||
strawberry_django.filter_field()
|
strawberry_django.filter_field()
|
||||||
)
|
)
|
||||||
@ -688,17 +684,17 @@ class ModuleBayFilter(ModularComponentModelFilterMixin):
|
|||||||
|
|
||||||
|
|
||||||
@strawberry_django.filter_type(models.ModuleBayTemplate, lookups=True)
|
@strawberry_django.filter_type(models.ModuleBayTemplate, lookups=True)
|
||||||
class ModuleBayTemplateFilter(ModularComponentTemplateFilterMixin):
|
class ModuleBayTemplateFilter(ModularComponentTemplateFilter):
|
||||||
position: FilterLookup[str] | None = strawberry_django.filter_field()
|
position: FilterLookup[str] | None = strawberry_django.filter_field()
|
||||||
|
|
||||||
|
|
||||||
@strawberry_django.filter_type(models.ModuleTypeProfile, lookups=True)
|
@strawberry_django.filter_type(models.ModuleTypeProfile, lookups=True)
|
||||||
class ModuleTypeProfileFilter(PrimaryModelFilterMixin):
|
class ModuleTypeProfileFilter(PrimaryModelFilter):
|
||||||
name: FilterLookup[str] | None = strawberry_django.filter_field()
|
name: FilterLookup[str] | None = strawberry_django.filter_field()
|
||||||
|
|
||||||
|
|
||||||
@strawberry_django.filter_type(models.ModuleType, lookups=True)
|
@strawberry_django.filter_type(models.ModuleType, lookups=True)
|
||||||
class ModuleTypeFilter(ImageAttachmentFilterMixin, PrimaryModelFilterMixin, WeightFilterMixin):
|
class ModuleTypeFilter(ImageAttachmentFilterMixin, PrimaryModelFilter, WeightFilterMixin):
|
||||||
manufacturer: Annotated['ManufacturerFilter', strawberry.lazy('dcim.graphql.filters')] | None = (
|
manufacturer: Annotated['ManufacturerFilter', strawberry.lazy('dcim.graphql.filters')] | None = (
|
||||||
strawberry_django.filter_field()
|
strawberry_django.filter_field()
|
||||||
)
|
)
|
||||||
@ -749,7 +745,7 @@ class ModuleTypeFilter(ImageAttachmentFilterMixin, PrimaryModelFilterMixin, Weig
|
|||||||
|
|
||||||
|
|
||||||
@strawberry_django.filter_type(models.Platform, lookups=True)
|
@strawberry_django.filter_type(models.Platform, lookups=True)
|
||||||
class PlatformFilter(OrganizationalModelFilterMixin):
|
class PlatformFilter(OrganizationalModelFilter):
|
||||||
manufacturer: Annotated['ManufacturerFilter', strawberry.lazy('dcim.graphql.filters')] | None = (
|
manufacturer: Annotated['ManufacturerFilter', strawberry.lazy('dcim.graphql.filters')] | None = (
|
||||||
strawberry_django.filter_field()
|
strawberry_django.filter_field()
|
||||||
)
|
)
|
||||||
@ -761,7 +757,7 @@ class PlatformFilter(OrganizationalModelFilterMixin):
|
|||||||
|
|
||||||
|
|
||||||
@strawberry_django.filter_type(models.PowerFeed, lookups=True)
|
@strawberry_django.filter_type(models.PowerFeed, lookups=True)
|
||||||
class PowerFeedFilter(CabledObjectModelFilterMixin, TenancyFilterMixin, PrimaryModelFilterMixin):
|
class PowerFeedFilter(CabledObjectModelFilterMixin, TenancyFilterMixin, PrimaryModelFilter):
|
||||||
power_panel: Annotated['PowerPanelFilter', strawberry.lazy('dcim.graphql.filters')] | None = (
|
power_panel: Annotated['PowerPanelFilter', strawberry.lazy('dcim.graphql.filters')] | None = (
|
||||||
strawberry_django.filter_field()
|
strawberry_django.filter_field()
|
||||||
)
|
)
|
||||||
@ -796,7 +792,7 @@ class PowerFeedFilter(CabledObjectModelFilterMixin, TenancyFilterMixin, PrimaryM
|
|||||||
|
|
||||||
|
|
||||||
@strawberry_django.filter_type(models.PowerOutlet, lookups=True)
|
@strawberry_django.filter_type(models.PowerOutlet, lookups=True)
|
||||||
class PowerOutletFilter(ModularComponentModelFilterMixin, CabledObjectModelFilterMixin):
|
class PowerOutletFilter(ModularComponentModelFilter, CabledObjectModelFilterMixin):
|
||||||
type: BaseFilterLookup[Annotated['PowerOutletTypeEnum', strawberry.lazy('dcim.graphql.enums')]] | None = (
|
type: BaseFilterLookup[Annotated['PowerOutletTypeEnum', strawberry.lazy('dcim.graphql.enums')]] | None = (
|
||||||
strawberry_django.filter_field()
|
strawberry_django.filter_field()
|
||||||
)
|
)
|
||||||
@ -816,7 +812,7 @@ class PowerOutletFilter(ModularComponentModelFilterMixin, CabledObjectModelFilte
|
|||||||
|
|
||||||
|
|
||||||
@strawberry_django.filter_type(models.PowerOutletTemplate, lookups=True)
|
@strawberry_django.filter_type(models.PowerOutletTemplate, lookups=True)
|
||||||
class PowerOutletTemplateFilter(ModularComponentModelFilterMixin):
|
class PowerOutletTemplateFilter(ModularComponentModelFilter):
|
||||||
type: BaseFilterLookup[Annotated['PowerOutletTypeEnum', strawberry.lazy('dcim.graphql.enums')]] | None = (
|
type: BaseFilterLookup[Annotated['PowerOutletTypeEnum', strawberry.lazy('dcim.graphql.enums')]] | None = (
|
||||||
strawberry_django.filter_field()
|
strawberry_django.filter_field()
|
||||||
)
|
)
|
||||||
@ -830,7 +826,7 @@ class PowerOutletTemplateFilter(ModularComponentModelFilterMixin):
|
|||||||
|
|
||||||
|
|
||||||
@strawberry_django.filter_type(models.PowerPanel, lookups=True)
|
@strawberry_django.filter_type(models.PowerPanel, lookups=True)
|
||||||
class PowerPanelFilter(ContactFilterMixin, ImageAttachmentFilterMixin, PrimaryModelFilterMixin):
|
class PowerPanelFilter(ContactFilterMixin, ImageAttachmentFilterMixin, PrimaryModelFilter):
|
||||||
site: Annotated['SiteFilter', strawberry.lazy('dcim.graphql.filters')] | None = strawberry_django.filter_field()
|
site: Annotated['SiteFilter', strawberry.lazy('dcim.graphql.filters')] | None = strawberry_django.filter_field()
|
||||||
site_id: ID | None = strawberry_django.filter_field()
|
site_id: ID | None = strawberry_django.filter_field()
|
||||||
location: Annotated['LocationFilter', strawberry.lazy('dcim.graphql.filters')] | None = (
|
location: Annotated['LocationFilter', strawberry.lazy('dcim.graphql.filters')] | None = (
|
||||||
@ -843,7 +839,7 @@ class PowerPanelFilter(ContactFilterMixin, ImageAttachmentFilterMixin, PrimaryMo
|
|||||||
|
|
||||||
|
|
||||||
@strawberry_django.filter_type(models.PowerPort, lookups=True)
|
@strawberry_django.filter_type(models.PowerPort, lookups=True)
|
||||||
class PowerPortFilter(ModularComponentModelFilterMixin, CabledObjectModelFilterMixin):
|
class PowerPortFilter(ModularComponentModelFilter, CabledObjectModelFilterMixin):
|
||||||
type: BaseFilterLookup[Annotated['PowerPortTypeEnum', strawberry.lazy('dcim.graphql.enums')]] | None = (
|
type: BaseFilterLookup[Annotated['PowerPortTypeEnum', strawberry.lazy('dcim.graphql.enums')]] | None = (
|
||||||
strawberry_django.filter_field()
|
strawberry_django.filter_field()
|
||||||
)
|
)
|
||||||
@ -856,7 +852,7 @@ class PowerPortFilter(ModularComponentModelFilterMixin, CabledObjectModelFilterM
|
|||||||
|
|
||||||
|
|
||||||
@strawberry_django.filter_type(models.PowerPortTemplate, lookups=True)
|
@strawberry_django.filter_type(models.PowerPortTemplate, lookups=True)
|
||||||
class PowerPortTemplateFilter(ModularComponentTemplateFilterMixin):
|
class PowerPortTemplateFilter(ModularComponentTemplateFilter):
|
||||||
type: BaseFilterLookup[Annotated['PowerPortTypeEnum', strawberry.lazy('dcim.graphql.enums')]] | None = (
|
type: BaseFilterLookup[Annotated['PowerPortTypeEnum', strawberry.lazy('dcim.graphql.enums')]] | None = (
|
||||||
strawberry_django.filter_field()
|
strawberry_django.filter_field()
|
||||||
)
|
)
|
||||||
@ -869,7 +865,7 @@ class PowerPortTemplateFilter(ModularComponentTemplateFilterMixin):
|
|||||||
|
|
||||||
|
|
||||||
@strawberry_django.filter_type(models.RackType, lookups=True)
|
@strawberry_django.filter_type(models.RackType, lookups=True)
|
||||||
class RackTypeFilter(RackBaseFilterMixin):
|
class RackTypeFilter(RackBaseFilter):
|
||||||
form_factor: BaseFilterLookup[Annotated['RackFormFactorEnum', strawberry.lazy('dcim.graphql.enums')]] | None = (
|
form_factor: BaseFilterLookup[Annotated['RackFormFactorEnum', strawberry.lazy('dcim.graphql.enums')]] | None = (
|
||||||
strawberry_django.filter_field()
|
strawberry_django.filter_field()
|
||||||
)
|
)
|
||||||
@ -884,7 +880,7 @@ class RackTypeFilter(RackBaseFilterMixin):
|
|||||||
|
|
||||||
|
|
||||||
@strawberry_django.filter_type(models.Rack, lookups=True)
|
@strawberry_django.filter_type(models.Rack, lookups=True)
|
||||||
class RackFilter(ContactFilterMixin, ImageAttachmentFilterMixin, TenancyFilterMixin, RackBaseFilterMixin):
|
class RackFilter(ContactFilterMixin, ImageAttachmentFilterMixin, TenancyFilterMixin, RackBaseFilter):
|
||||||
form_factor: BaseFilterLookup[Annotated['RackFormFactorEnum', strawberry.lazy('dcim.graphql.enums')]] | None = (
|
form_factor: BaseFilterLookup[Annotated['RackFormFactorEnum', strawberry.lazy('dcim.graphql.enums')]] | None = (
|
||||||
strawberry_django.filter_field()
|
strawberry_django.filter_field()
|
||||||
)
|
)
|
||||||
@ -918,7 +914,7 @@ class RackFilter(ContactFilterMixin, ImageAttachmentFilterMixin, TenancyFilterMi
|
|||||||
|
|
||||||
|
|
||||||
@strawberry_django.filter_type(models.RackReservation, lookups=True)
|
@strawberry_django.filter_type(models.RackReservation, lookups=True)
|
||||||
class RackReservationFilter(TenancyFilterMixin, PrimaryModelFilterMixin):
|
class RackReservationFilter(TenancyFilterMixin, PrimaryModelFilter):
|
||||||
rack: Annotated['RackFilter', strawberry.lazy('dcim.graphql.filters')] | None = strawberry_django.filter_field()
|
rack: Annotated['RackFilter', strawberry.lazy('dcim.graphql.filters')] | None = strawberry_django.filter_field()
|
||||||
rack_id: ID | None = strawberry_django.filter_field()
|
rack_id: ID | None = strawberry_django.filter_field()
|
||||||
units: Annotated['IntegerArrayLookup', strawberry.lazy('netbox.graphql.filter_lookups')] | None = (
|
units: Annotated['IntegerArrayLookup', strawberry.lazy('netbox.graphql.filter_lookups')] | None = (
|
||||||
@ -933,14 +929,14 @@ class RackReservationFilter(TenancyFilterMixin, PrimaryModelFilterMixin):
|
|||||||
|
|
||||||
|
|
||||||
@strawberry_django.filter_type(models.RackRole, lookups=True)
|
@strawberry_django.filter_type(models.RackRole, lookups=True)
|
||||||
class RackRoleFilter(OrganizationalModelFilterMixin):
|
class RackRoleFilter(OrganizationalModelFilter):
|
||||||
color: BaseFilterLookup[Annotated['ColorEnum', strawberry.lazy('netbox.graphql.enums')]] | None = (
|
color: BaseFilterLookup[Annotated['ColorEnum', strawberry.lazy('netbox.graphql.enums')]] | None = (
|
||||||
strawberry_django.filter_field()
|
strawberry_django.filter_field()
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@strawberry_django.filter_type(models.RearPort, lookups=True)
|
@strawberry_django.filter_type(models.RearPort, lookups=True)
|
||||||
class RearPortFilter(ModularComponentModelFilterMixin, CabledObjectModelFilterMixin):
|
class RearPortFilter(ModularComponentModelFilter, CabledObjectModelFilterMixin):
|
||||||
type: BaseFilterLookup[Annotated['PortTypeEnum', strawberry.lazy('dcim.graphql.enums')]] | None = (
|
type: BaseFilterLookup[Annotated['PortTypeEnum', strawberry.lazy('dcim.graphql.enums')]] | None = (
|
||||||
strawberry_django.filter_field()
|
strawberry_django.filter_field()
|
||||||
)
|
)
|
||||||
@ -953,7 +949,7 @@ class RearPortFilter(ModularComponentModelFilterMixin, CabledObjectModelFilterMi
|
|||||||
|
|
||||||
|
|
||||||
@strawberry_django.filter_type(models.RearPortTemplate, lookups=True)
|
@strawberry_django.filter_type(models.RearPortTemplate, lookups=True)
|
||||||
class RearPortTemplateFilter(ModularComponentTemplateFilterMixin):
|
class RearPortTemplateFilter(ModularComponentTemplateFilter):
|
||||||
type: BaseFilterLookup[Annotated['PortTypeEnum', strawberry.lazy('dcim.graphql.enums')]] | None = (
|
type: BaseFilterLookup[Annotated['PortTypeEnum', strawberry.lazy('dcim.graphql.enums')]] | None = (
|
||||||
strawberry_django.filter_field()
|
strawberry_django.filter_field()
|
||||||
)
|
)
|
||||||
@ -966,7 +962,7 @@ class RearPortTemplateFilter(ModularComponentTemplateFilterMixin):
|
|||||||
|
|
||||||
|
|
||||||
@strawberry_django.filter_type(models.Region, lookups=True)
|
@strawberry_django.filter_type(models.Region, lookups=True)
|
||||||
class RegionFilter(ContactFilterMixin, NestedGroupModelFilterMixin):
|
class RegionFilter(ContactFilterMixin, NestedGroupModelFilter):
|
||||||
prefixes: Annotated['PrefixFilter', strawberry.lazy('ipam.graphql.filters')] | None = (
|
prefixes: Annotated['PrefixFilter', strawberry.lazy('ipam.graphql.filters')] | None = (
|
||||||
strawberry_django.filter_field()
|
strawberry_django.filter_field()
|
||||||
)
|
)
|
||||||
@ -976,7 +972,7 @@ class RegionFilter(ContactFilterMixin, NestedGroupModelFilterMixin):
|
|||||||
|
|
||||||
|
|
||||||
@strawberry_django.filter_type(models.Site, lookups=True)
|
@strawberry_django.filter_type(models.Site, lookups=True)
|
||||||
class SiteFilter(ContactFilterMixin, ImageAttachmentFilterMixin, TenancyFilterMixin, PrimaryModelFilterMixin):
|
class SiteFilter(ContactFilterMixin, ImageAttachmentFilterMixin, TenancyFilterMixin, PrimaryModelFilter):
|
||||||
name: FilterLookup[str] | None = strawberry_django.filter_field()
|
name: FilterLookup[str] | None = strawberry_django.filter_field()
|
||||||
slug: FilterLookup[str] | None = strawberry_django.filter_field()
|
slug: FilterLookup[str] | None = strawberry_django.filter_field()
|
||||||
status: BaseFilterLookup[Annotated['SiteStatusEnum', strawberry.lazy('dcim.graphql.enums')]] | None = (
|
status: BaseFilterLookup[Annotated['SiteStatusEnum', strawberry.lazy('dcim.graphql.enums')]] | None = (
|
||||||
@ -1012,7 +1008,7 @@ class SiteFilter(ContactFilterMixin, ImageAttachmentFilterMixin, TenancyFilterMi
|
|||||||
|
|
||||||
|
|
||||||
@strawberry_django.filter_type(models.SiteGroup, lookups=True)
|
@strawberry_django.filter_type(models.SiteGroup, lookups=True)
|
||||||
class SiteGroupFilter(ContactFilterMixin, NestedGroupModelFilterMixin):
|
class SiteGroupFilter(ContactFilterMixin, NestedGroupModelFilter):
|
||||||
prefixes: Annotated['PrefixFilter', strawberry.lazy('ipam.graphql.filters')] | None = (
|
prefixes: Annotated['PrefixFilter', strawberry.lazy('ipam.graphql.filters')] | None = (
|
||||||
strawberry_django.filter_field()
|
strawberry_django.filter_field()
|
||||||
)
|
)
|
||||||
@ -1022,7 +1018,7 @@ class SiteGroupFilter(ContactFilterMixin, NestedGroupModelFilterMixin):
|
|||||||
|
|
||||||
|
|
||||||
@strawberry_django.filter_type(models.VirtualChassis, lookups=True)
|
@strawberry_django.filter_type(models.VirtualChassis, lookups=True)
|
||||||
class VirtualChassisFilter(PrimaryModelFilterMixin):
|
class VirtualChassisFilter(PrimaryModelFilter):
|
||||||
master: Annotated['DeviceFilter', strawberry.lazy('dcim.graphql.filters')] | None = strawberry_django.filter_field()
|
master: Annotated['DeviceFilter', strawberry.lazy('dcim.graphql.filters')] | None = strawberry_django.filter_field()
|
||||||
master_id: ID | None = strawberry_django.filter_field()
|
master_id: ID | None = strawberry_django.filter_field()
|
||||||
name: FilterLookup[str] | None = strawberry_django.filter_field()
|
name: FilterLookup[str] | None = strawberry_django.filter_field()
|
||||||
@ -1034,7 +1030,7 @@ class VirtualChassisFilter(PrimaryModelFilterMixin):
|
|||||||
|
|
||||||
|
|
||||||
@strawberry_django.filter_type(models.VirtualDeviceContext, lookups=True)
|
@strawberry_django.filter_type(models.VirtualDeviceContext, lookups=True)
|
||||||
class VirtualDeviceContextFilter(TenancyFilterMixin, PrimaryModelFilterMixin):
|
class VirtualDeviceContextFilter(TenancyFilterMixin, PrimaryModelFilter):
|
||||||
device: Annotated['DeviceFilter', strawberry.lazy('dcim.graphql.filters')] | None = strawberry_django.filter_field()
|
device: Annotated['DeviceFilter', strawberry.lazy('dcim.graphql.filters')] | None = strawberry_django.filter_field()
|
||||||
device_id: ID | None = strawberry_django.filter_field()
|
device_id: ID | None = strawberry_django.filter_field()
|
||||||
name: FilterLookup[str] | None = strawberry_django.filter_field()
|
name: FilterLookup[str] | None = strawberry_django.filter_field()
|
||||||
|
|||||||
@ -5,7 +5,7 @@ import strawberry
|
|||||||
import strawberry_django
|
import strawberry_django
|
||||||
from strawberry_django import FilterLookup
|
from strawberry_django import FilterLookup
|
||||||
|
|
||||||
from core.graphql.filter_mixins import BaseFilterMixin
|
from core.graphql.filter_mixins import BaseFilter
|
||||||
|
|
||||||
if TYPE_CHECKING:
|
if TYPE_CHECKING:
|
||||||
from netbox.graphql.filter_lookups import JSONFilter
|
from netbox.graphql.filter_lookups import JSONFilter
|
||||||
@ -16,37 +16,37 @@ __all__ = (
|
|||||||
'JournalEntriesFilterMixin',
|
'JournalEntriesFilterMixin',
|
||||||
'TagsFilterMixin',
|
'TagsFilterMixin',
|
||||||
'ConfigContextFilterMixin',
|
'ConfigContextFilterMixin',
|
||||||
'TagBaseFilterMixin',
|
'TagBaseFilter',
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@dataclass
|
@dataclass
|
||||||
class CustomFieldsFilterMixin(BaseFilterMixin):
|
class CustomFieldsFilterMixin(BaseFilter):
|
||||||
custom_field_data: Annotated['JSONFilter', strawberry.lazy('netbox.graphql.filter_lookups')] | None = (
|
custom_field_data: Annotated['JSONFilter', strawberry.lazy('netbox.graphql.filter_lookups')] | None = (
|
||||||
strawberry_django.filter_field()
|
strawberry_django.filter_field()
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@dataclass
|
@dataclass
|
||||||
class JournalEntriesFilterMixin(BaseFilterMixin):
|
class JournalEntriesFilterMixin(BaseFilter):
|
||||||
journal_entries: Annotated['JournalEntryFilter', strawberry.lazy('extras.graphql.filters')] | None = (
|
journal_entries: Annotated['JournalEntryFilter', strawberry.lazy('extras.graphql.filters')] | None = (
|
||||||
strawberry_django.filter_field()
|
strawberry_django.filter_field()
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@dataclass
|
@dataclass
|
||||||
class TagsFilterMixin(BaseFilterMixin):
|
class TagsFilterMixin(BaseFilter):
|
||||||
tags: Annotated['TagFilter', strawberry.lazy('extras.graphql.filters')] | None = strawberry_django.filter_field()
|
tags: Annotated['TagFilter', strawberry.lazy('extras.graphql.filters')] | None = strawberry_django.filter_field()
|
||||||
|
|
||||||
|
|
||||||
@dataclass
|
@dataclass
|
||||||
class ConfigContextFilterMixin(BaseFilterMixin):
|
class ConfigContextFilterMixin(BaseFilter):
|
||||||
local_context_data: Annotated['JSONFilter', strawberry.lazy('netbox.graphql.filter_lookups')] | None = (
|
local_context_data: Annotated['JSONFilter', strawberry.lazy('netbox.graphql.filter_lookups')] | None = (
|
||||||
strawberry_django.filter_field()
|
strawberry_django.filter_field()
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@dataclass
|
@dataclass
|
||||||
class TagBaseFilterMixin(BaseFilterMixin):
|
class TagBaseFilter(BaseFilter):
|
||||||
name: FilterLookup[str] | None = strawberry_django.filter_field()
|
name: FilterLookup[str] | None = strawberry_django.filter_field()
|
||||||
slug: FilterLookup[str] | None = strawberry_django.filter_field()
|
slug: FilterLookup[str] | None = strawberry_django.filter_field()
|
||||||
|
|||||||
@ -5,10 +5,11 @@ import strawberry_django
|
|||||||
from strawberry.scalars import ID
|
from strawberry.scalars import ID
|
||||||
from strawberry_django import BaseFilterLookup, FilterLookup
|
from strawberry_django import BaseFilterLookup, FilterLookup
|
||||||
|
|
||||||
from core.graphql.filter_mixins import BaseObjectTypeFilterMixin, ChangeLogFilterMixin
|
from core.graphql.filter_mixins import BaseObjectTypeFilterMixin
|
||||||
from extras import models
|
from extras import models
|
||||||
from extras.graphql.filter_mixins import TagBaseFilterMixin, CustomFieldsFilterMixin, TagsFilterMixin
|
from extras.graphql.filter_mixins import TagBaseFilter, CustomFieldsFilterMixin, TagsFilterMixin
|
||||||
from netbox.graphql.filter_mixins import PrimaryModelFilterMixin, SyncedDataFilterMixin
|
from netbox.graphql.filter_mixins import SyncedDataFilterMixin
|
||||||
|
from netbox.graphql.filters import ChangeLoggedModelFilter, PrimaryModelFilter
|
||||||
|
|
||||||
if TYPE_CHECKING:
|
if TYPE_CHECKING:
|
||||||
from core.graphql.filters import ContentTypeFilter
|
from core.graphql.filters import ContentTypeFilter
|
||||||
@ -42,7 +43,7 @@ __all__ = (
|
|||||||
|
|
||||||
|
|
||||||
@strawberry_django.filter_type(models.ConfigContext, lookups=True)
|
@strawberry_django.filter_type(models.ConfigContext, lookups=True)
|
||||||
class ConfigContextFilter(BaseObjectTypeFilterMixin, SyncedDataFilterMixin, ChangeLogFilterMixin):
|
class ConfigContextFilter(BaseObjectTypeFilterMixin, SyncedDataFilterMixin, ChangeLoggedModelFilter):
|
||||||
name: FilterLookup[str] | None = strawberry_django.filter_field()
|
name: FilterLookup[str] | None = strawberry_django.filter_field()
|
||||||
weight: Annotated['IntegerLookup', strawberry.lazy('netbox.graphql.filter_lookups')] | None = (
|
weight: Annotated['IntegerLookup', strawberry.lazy('netbox.graphql.filter_lookups')] | None = (
|
||||||
strawberry_django.filter_field()
|
strawberry_django.filter_field()
|
||||||
@ -99,14 +100,14 @@ class ConfigContextFilter(BaseObjectTypeFilterMixin, SyncedDataFilterMixin, Chan
|
|||||||
|
|
||||||
|
|
||||||
@strawberry_django.filter_type(models.ConfigContextProfile, lookups=True)
|
@strawberry_django.filter_type(models.ConfigContextProfile, lookups=True)
|
||||||
class ConfigContextProfileFilter(SyncedDataFilterMixin, PrimaryModelFilterMixin):
|
class ConfigContextProfileFilter(SyncedDataFilterMixin, PrimaryModelFilter):
|
||||||
name: FilterLookup[str] = strawberry_django.filter_field()
|
name: FilterLookup[str] = strawberry_django.filter_field()
|
||||||
description: FilterLookup[str] = strawberry_django.filter_field()
|
description: FilterLookup[str] = strawberry_django.filter_field()
|
||||||
tags: Annotated['TagFilter', strawberry.lazy('extras.graphql.filters')] | None = strawberry_django.filter_field()
|
tags: Annotated['TagFilter', strawberry.lazy('extras.graphql.filters')] | None = strawberry_django.filter_field()
|
||||||
|
|
||||||
|
|
||||||
@strawberry_django.filter_type(models.ConfigTemplate, lookups=True)
|
@strawberry_django.filter_type(models.ConfigTemplate, lookups=True)
|
||||||
class ConfigTemplateFilter(BaseObjectTypeFilterMixin, SyncedDataFilterMixin, ChangeLogFilterMixin):
|
class ConfigTemplateFilter(BaseObjectTypeFilterMixin, SyncedDataFilterMixin, ChangeLoggedModelFilter):
|
||||||
name: FilterLookup[str] | None = strawberry_django.filter_field()
|
name: FilterLookup[str] | None = strawberry_django.filter_field()
|
||||||
description: FilterLookup[str] | None = strawberry_django.filter_field()
|
description: FilterLookup[str] | None = strawberry_django.filter_field()
|
||||||
template_code: FilterLookup[str] | None = strawberry_django.filter_field()
|
template_code: FilterLookup[str] | None = strawberry_django.filter_field()
|
||||||
@ -120,7 +121,7 @@ class ConfigTemplateFilter(BaseObjectTypeFilterMixin, SyncedDataFilterMixin, Cha
|
|||||||
|
|
||||||
|
|
||||||
@strawberry_django.filter_type(models.CustomField, lookups=True)
|
@strawberry_django.filter_type(models.CustomField, lookups=True)
|
||||||
class CustomFieldFilter(BaseObjectTypeFilterMixin, ChangeLogFilterMixin):
|
class CustomFieldFilter(BaseObjectTypeFilterMixin, ChangeLoggedModelFilter):
|
||||||
type: BaseFilterLookup[Annotated['CustomFieldTypeEnum', strawberry.lazy('extras.graphql.enums')]] | None = (
|
type: BaseFilterLookup[Annotated['CustomFieldTypeEnum', strawberry.lazy('extras.graphql.enums')]] | None = (
|
||||||
strawberry_django.filter_field()
|
strawberry_django.filter_field()
|
||||||
)
|
)
|
||||||
@ -179,7 +180,7 @@ class CustomFieldFilter(BaseObjectTypeFilterMixin, ChangeLogFilterMixin):
|
|||||||
|
|
||||||
|
|
||||||
@strawberry_django.filter_type(models.CustomFieldChoiceSet, lookups=True)
|
@strawberry_django.filter_type(models.CustomFieldChoiceSet, lookups=True)
|
||||||
class CustomFieldChoiceSetFilter(BaseObjectTypeFilterMixin, ChangeLogFilterMixin):
|
class CustomFieldChoiceSetFilter(BaseObjectTypeFilterMixin, ChangeLoggedModelFilter):
|
||||||
name: FilterLookup[str] | None = strawberry_django.filter_field()
|
name: FilterLookup[str] | None = strawberry_django.filter_field()
|
||||||
description: FilterLookup[str] | None = strawberry_django.filter_field()
|
description: FilterLookup[str] | None = strawberry_django.filter_field()
|
||||||
base_choices: (
|
base_choices: (
|
||||||
@ -194,7 +195,7 @@ class CustomFieldChoiceSetFilter(BaseObjectTypeFilterMixin, ChangeLogFilterMixin
|
|||||||
|
|
||||||
|
|
||||||
@strawberry_django.filter_type(models.CustomLink, lookups=True)
|
@strawberry_django.filter_type(models.CustomLink, lookups=True)
|
||||||
class CustomLinkFilter(BaseObjectTypeFilterMixin, ChangeLogFilterMixin):
|
class CustomLinkFilter(BaseObjectTypeFilterMixin, ChangeLoggedModelFilter):
|
||||||
name: FilterLookup[str] | None = strawberry_django.filter_field()
|
name: FilterLookup[str] | None = strawberry_django.filter_field()
|
||||||
enabled: FilterLookup[bool] | None = strawberry_django.filter_field()
|
enabled: FilterLookup[bool] | None = strawberry_django.filter_field()
|
||||||
link_text: FilterLookup[str] | None = strawberry_django.filter_field()
|
link_text: FilterLookup[str] | None = strawberry_django.filter_field()
|
||||||
@ -212,7 +213,7 @@ class CustomLinkFilter(BaseObjectTypeFilterMixin, ChangeLogFilterMixin):
|
|||||||
|
|
||||||
|
|
||||||
@strawberry_django.filter_type(models.ExportTemplate, lookups=True)
|
@strawberry_django.filter_type(models.ExportTemplate, lookups=True)
|
||||||
class ExportTemplateFilter(BaseObjectTypeFilterMixin, SyncedDataFilterMixin, ChangeLogFilterMixin):
|
class ExportTemplateFilter(BaseObjectTypeFilterMixin, SyncedDataFilterMixin, ChangeLoggedModelFilter):
|
||||||
name: FilterLookup[str] | None = strawberry_django.filter_field()
|
name: FilterLookup[str] | None = strawberry_django.filter_field()
|
||||||
description: FilterLookup[str] | None = strawberry_django.filter_field()
|
description: FilterLookup[str] | None = strawberry_django.filter_field()
|
||||||
template_code: FilterLookup[str] | None = strawberry_django.filter_field()
|
template_code: FilterLookup[str] | None = strawberry_django.filter_field()
|
||||||
@ -226,7 +227,7 @@ class ExportTemplateFilter(BaseObjectTypeFilterMixin, SyncedDataFilterMixin, Cha
|
|||||||
|
|
||||||
|
|
||||||
@strawberry_django.filter_type(models.ImageAttachment, lookups=True)
|
@strawberry_django.filter_type(models.ImageAttachment, lookups=True)
|
||||||
class ImageAttachmentFilter(BaseObjectTypeFilterMixin, ChangeLogFilterMixin):
|
class ImageAttachmentFilter(BaseObjectTypeFilterMixin, ChangeLoggedModelFilter):
|
||||||
object_type: Annotated['ContentTypeFilter', strawberry.lazy('core.graphql.filters')] | None = (
|
object_type: Annotated['ContentTypeFilter', strawberry.lazy('core.graphql.filters')] | None = (
|
||||||
strawberry_django.filter_field()
|
strawberry_django.filter_field()
|
||||||
)
|
)
|
||||||
@ -241,7 +242,7 @@ class ImageAttachmentFilter(BaseObjectTypeFilterMixin, ChangeLogFilterMixin):
|
|||||||
|
|
||||||
|
|
||||||
@strawberry_django.filter_type(models.JournalEntry, lookups=True)
|
@strawberry_django.filter_type(models.JournalEntry, lookups=True)
|
||||||
class JournalEntryFilter(BaseObjectTypeFilterMixin, CustomFieldsFilterMixin, TagsFilterMixin, ChangeLogFilterMixin):
|
class JournalEntryFilter(BaseObjectTypeFilterMixin, CustomFieldsFilterMixin, TagsFilterMixin, ChangeLoggedModelFilter):
|
||||||
assigned_object_type: Annotated['ContentTypeFilter', strawberry.lazy('core.graphql.filters')] | None = (
|
assigned_object_type: Annotated['ContentTypeFilter', strawberry.lazy('core.graphql.filters')] | None = (
|
||||||
strawberry_django.filter_field()
|
strawberry_django.filter_field()
|
||||||
)
|
)
|
||||||
@ -257,7 +258,7 @@ class JournalEntryFilter(BaseObjectTypeFilterMixin, CustomFieldsFilterMixin, Tag
|
|||||||
|
|
||||||
|
|
||||||
@strawberry_django.filter_type(models.NotificationGroup, lookups=True)
|
@strawberry_django.filter_type(models.NotificationGroup, lookups=True)
|
||||||
class NotificationGroupFilter(BaseObjectTypeFilterMixin, ChangeLogFilterMixin):
|
class NotificationGroupFilter(BaseObjectTypeFilterMixin, ChangeLoggedModelFilter):
|
||||||
name: FilterLookup[str] | None = strawberry_django.filter_field()
|
name: FilterLookup[str] | None = strawberry_django.filter_field()
|
||||||
description: FilterLookup[str] | None = strawberry_django.filter_field()
|
description: FilterLookup[str] | None = strawberry_django.filter_field()
|
||||||
groups: Annotated['GroupFilter', strawberry.lazy('users.graphql.filters')] | None = strawberry_django.filter_field()
|
groups: Annotated['GroupFilter', strawberry.lazy('users.graphql.filters')] | None = strawberry_django.filter_field()
|
||||||
@ -265,7 +266,7 @@ class NotificationGroupFilter(BaseObjectTypeFilterMixin, ChangeLogFilterMixin):
|
|||||||
|
|
||||||
|
|
||||||
@strawberry_django.filter_type(models.SavedFilter, lookups=True)
|
@strawberry_django.filter_type(models.SavedFilter, lookups=True)
|
||||||
class SavedFilterFilter(BaseObjectTypeFilterMixin, ChangeLogFilterMixin):
|
class SavedFilterFilter(BaseObjectTypeFilterMixin, ChangeLoggedModelFilter):
|
||||||
name: FilterLookup[str] | None = strawberry_django.filter_field()
|
name: FilterLookup[str] | None = strawberry_django.filter_field()
|
||||||
slug: FilterLookup[str] | None = strawberry_django.filter_field()
|
slug: FilterLookup[str] | None = strawberry_django.filter_field()
|
||||||
description: FilterLookup[str] | None = strawberry_django.filter_field()
|
description: FilterLookup[str] | None = strawberry_django.filter_field()
|
||||||
@ -282,7 +283,7 @@ class SavedFilterFilter(BaseObjectTypeFilterMixin, ChangeLogFilterMixin):
|
|||||||
|
|
||||||
|
|
||||||
@strawberry_django.filter_type(models.TableConfig, lookups=True)
|
@strawberry_django.filter_type(models.TableConfig, lookups=True)
|
||||||
class TableConfigFilter(BaseObjectTypeFilterMixin, ChangeLogFilterMixin):
|
class TableConfigFilter(BaseObjectTypeFilterMixin, ChangeLoggedModelFilter):
|
||||||
name: FilterLookup[str] | None = strawberry_django.filter_field()
|
name: FilterLookup[str] | None = strawberry_django.filter_field()
|
||||||
description: FilterLookup[str] | None = strawberry_django.filter_field()
|
description: FilterLookup[str] | None = strawberry_django.filter_field()
|
||||||
user: Annotated['UserFilter', strawberry.lazy('users.graphql.filters')] | None = strawberry_django.filter_field()
|
user: Annotated['UserFilter', strawberry.lazy('users.graphql.filters')] | None = strawberry_django.filter_field()
|
||||||
@ -295,7 +296,7 @@ class TableConfigFilter(BaseObjectTypeFilterMixin, ChangeLogFilterMixin):
|
|||||||
|
|
||||||
|
|
||||||
@strawberry_django.filter_type(models.Tag, lookups=True)
|
@strawberry_django.filter_type(models.Tag, lookups=True)
|
||||||
class TagFilter(BaseObjectTypeFilterMixin, ChangeLogFilterMixin, TagBaseFilterMixin):
|
class TagFilter(BaseObjectTypeFilterMixin, ChangeLoggedModelFilter, TagBaseFilter):
|
||||||
color: BaseFilterLookup[Annotated['ColorEnum', strawberry.lazy('netbox.graphql.enums')]] | None = (
|
color: BaseFilterLookup[Annotated['ColorEnum', strawberry.lazy('netbox.graphql.enums')]] | None = (
|
||||||
strawberry_django.filter_field()
|
strawberry_django.filter_field()
|
||||||
)
|
)
|
||||||
@ -303,7 +304,7 @@ class TagFilter(BaseObjectTypeFilterMixin, ChangeLogFilterMixin, TagBaseFilterMi
|
|||||||
|
|
||||||
|
|
||||||
@strawberry_django.filter_type(models.Webhook, lookups=True)
|
@strawberry_django.filter_type(models.Webhook, lookups=True)
|
||||||
class WebhookFilter(BaseObjectTypeFilterMixin, CustomFieldsFilterMixin, TagsFilterMixin, ChangeLogFilterMixin):
|
class WebhookFilter(BaseObjectTypeFilterMixin, CustomFieldsFilterMixin, TagsFilterMixin, ChangeLoggedModelFilter):
|
||||||
name: FilterLookup[str] | None = strawberry_django.filter_field()
|
name: FilterLookup[str] | None = strawberry_django.filter_field()
|
||||||
description: FilterLookup[str] | None = strawberry_django.filter_field()
|
description: FilterLookup[str] | None = strawberry_django.filter_field()
|
||||||
payload_url: FilterLookup[str] | None = strawberry_django.filter_field()
|
payload_url: FilterLookup[str] | None = strawberry_django.filter_field()
|
||||||
@ -324,7 +325,7 @@ class WebhookFilter(BaseObjectTypeFilterMixin, CustomFieldsFilterMixin, TagsFilt
|
|||||||
|
|
||||||
|
|
||||||
@strawberry_django.filter_type(models.EventRule, lookups=True)
|
@strawberry_django.filter_type(models.EventRule, lookups=True)
|
||||||
class EventRuleFilter(BaseObjectTypeFilterMixin, CustomFieldsFilterMixin, TagsFilterMixin, ChangeLogFilterMixin):
|
class EventRuleFilter(BaseObjectTypeFilterMixin, CustomFieldsFilterMixin, TagsFilterMixin, ChangeLoggedModelFilter):
|
||||||
name: FilterLookup[str] | None = strawberry_django.filter_field()
|
name: FilterLookup[str] | None = strawberry_django.filter_field()
|
||||||
description: FilterLookup[str] | None = strawberry_django.filter_field()
|
description: FilterLookup[str] | None = strawberry_django.filter_field()
|
||||||
event_types: Annotated['StringArrayLookup', strawberry.lazy('netbox.graphql.filter_lookups')] | None = (
|
event_types: Annotated['StringArrayLookup', strawberry.lazy('netbox.graphql.filter_lookups')] | None = (
|
||||||
|
|||||||
@ -4,7 +4,7 @@ from typing import Annotated, TYPE_CHECKING
|
|||||||
import strawberry
|
import strawberry
|
||||||
import strawberry_django
|
import strawberry_django
|
||||||
|
|
||||||
from core.graphql.filter_mixins import BaseFilterMixin
|
from core.graphql.filter_mixins import BaseFilter
|
||||||
|
|
||||||
if TYPE_CHECKING:
|
if TYPE_CHECKING:
|
||||||
from netbox.graphql.filter_lookups import IntegerLookup
|
from netbox.graphql.filter_lookups import IntegerLookup
|
||||||
@ -16,7 +16,7 @@ __all__ = (
|
|||||||
|
|
||||||
|
|
||||||
@dataclass
|
@dataclass
|
||||||
class ServiceBaseFilterMixin(BaseFilterMixin):
|
class ServiceBaseFilterMixin(BaseFilter):
|
||||||
protocol: Annotated['ServiceProtocolEnum', strawberry.lazy('ipam.graphql.enums')] | None = (
|
protocol: Annotated['ServiceProtocolEnum', strawberry.lazy('ipam.graphql.enums')] | None = (
|
||||||
strawberry_django.filter_field()
|
strawberry_django.filter_field()
|
||||||
)
|
)
|
||||||
|
|||||||
@ -9,12 +9,14 @@ from netaddr.core import AddrFormatError
|
|||||||
from strawberry.scalars import ID
|
from strawberry.scalars import ID
|
||||||
from strawberry_django import BaseFilterLookup, FilterLookup, DateFilterLookup
|
from strawberry_django import BaseFilterLookup, FilterLookup, DateFilterLookup
|
||||||
|
|
||||||
from core.graphql.filter_mixins import BaseObjectTypeFilterMixin, ChangeLogFilterMixin
|
from core.graphql.filter_mixins import BaseObjectTypeFilterMixin
|
||||||
from dcim.graphql.filter_mixins import ScopedFilterMixin
|
from dcim.graphql.filter_mixins import ScopedFilterMixin
|
||||||
from dcim.models import Device
|
from dcim.models import Device
|
||||||
from ipam import models
|
from ipam import models
|
||||||
from ipam.graphql.filter_mixins import ServiceBaseFilterMixin
|
from ipam.graphql.filter_mixins import ServiceBaseFilterMixin
|
||||||
from netbox.graphql.filter_mixins import NetBoxModelFilterMixin, OrganizationalModelFilterMixin, PrimaryModelFilterMixin
|
from netbox.graphql.filters import (
|
||||||
|
ChangeLoggedModelFilter, NetBoxModelFilter, OrganizationalModelFilter, PrimaryModelFilter,
|
||||||
|
)
|
||||||
from tenancy.graphql.filter_mixins import ContactFilterMixin, TenancyFilterMixin
|
from tenancy.graphql.filter_mixins import ContactFilterMixin, TenancyFilterMixin
|
||||||
from virtualization.models import VMInterface
|
from virtualization.models import VMInterface
|
||||||
|
|
||||||
@ -49,7 +51,7 @@ __all__ = (
|
|||||||
|
|
||||||
|
|
||||||
@strawberry_django.filter_type(models.ASN, lookups=True)
|
@strawberry_django.filter_type(models.ASN, lookups=True)
|
||||||
class ASNFilter(TenancyFilterMixin, PrimaryModelFilterMixin):
|
class ASNFilter(TenancyFilterMixin, PrimaryModelFilter):
|
||||||
rir: Annotated['RIRFilter', strawberry.lazy('ipam.graphql.filters')] | None = strawberry_django.filter_field()
|
rir: Annotated['RIRFilter', strawberry.lazy('ipam.graphql.filters')] | None = strawberry_django.filter_field()
|
||||||
rir_id: ID | None = strawberry_django.filter_field()
|
rir_id: ID | None = strawberry_django.filter_field()
|
||||||
asn: Annotated['IntegerLookup', strawberry.lazy('netbox.graphql.filter_lookups')] | None = (
|
asn: Annotated['IntegerLookup', strawberry.lazy('netbox.graphql.filter_lookups')] | None = (
|
||||||
@ -64,7 +66,7 @@ class ASNFilter(TenancyFilterMixin, PrimaryModelFilterMixin):
|
|||||||
|
|
||||||
|
|
||||||
@strawberry_django.filter_type(models.ASNRange, lookups=True)
|
@strawberry_django.filter_type(models.ASNRange, lookups=True)
|
||||||
class ASNRangeFilter(TenancyFilterMixin, OrganizationalModelFilterMixin):
|
class ASNRangeFilter(TenancyFilterMixin, OrganizationalModelFilter):
|
||||||
name: FilterLookup[str] | None = strawberry_django.filter_field()
|
name: FilterLookup[str] | None = strawberry_django.filter_field()
|
||||||
slug: FilterLookup[str] | None = strawberry_django.filter_field()
|
slug: FilterLookup[str] | None = strawberry_django.filter_field()
|
||||||
rir: Annotated['RIRFilter', strawberry.lazy('ipam.graphql.filters')] | None = strawberry_django.filter_field()
|
rir: Annotated['RIRFilter', strawberry.lazy('ipam.graphql.filters')] | None = strawberry_django.filter_field()
|
||||||
@ -78,7 +80,7 @@ class ASNRangeFilter(TenancyFilterMixin, OrganizationalModelFilterMixin):
|
|||||||
|
|
||||||
|
|
||||||
@strawberry_django.filter_type(models.Aggregate, lookups=True)
|
@strawberry_django.filter_type(models.Aggregate, lookups=True)
|
||||||
class AggregateFilter(ContactFilterMixin, TenancyFilterMixin, PrimaryModelFilterMixin):
|
class AggregateFilter(ContactFilterMixin, TenancyFilterMixin, PrimaryModelFilter):
|
||||||
prefix: FilterLookup[str] | None = strawberry_django.filter_field()
|
prefix: FilterLookup[str] | None = strawberry_django.filter_field()
|
||||||
rir: Annotated['RIRFilter', strawberry.lazy('ipam.graphql.filters')] | None = strawberry_django.filter_field()
|
rir: Annotated['RIRFilter', strawberry.lazy('ipam.graphql.filters')] | None = strawberry_django.filter_field()
|
||||||
rir_id: ID | None = strawberry_django.filter_field()
|
rir_id: ID | None = strawberry_django.filter_field()
|
||||||
@ -111,7 +113,7 @@ class AggregateFilter(ContactFilterMixin, TenancyFilterMixin, PrimaryModelFilter
|
|||||||
|
|
||||||
|
|
||||||
@strawberry_django.filter_type(models.FHRPGroup, lookups=True)
|
@strawberry_django.filter_type(models.FHRPGroup, lookups=True)
|
||||||
class FHRPGroupFilter(PrimaryModelFilterMixin):
|
class FHRPGroupFilter(PrimaryModelFilter):
|
||||||
group_id: Annotated['IntegerLookup', strawberry.lazy('netbox.graphql.filter_lookups')] | None = (
|
group_id: Annotated['IntegerLookup', strawberry.lazy('netbox.graphql.filter_lookups')] | None = (
|
||||||
strawberry_django.filter_field()
|
strawberry_django.filter_field()
|
||||||
)
|
)
|
||||||
@ -129,7 +131,7 @@ class FHRPGroupFilter(PrimaryModelFilterMixin):
|
|||||||
|
|
||||||
|
|
||||||
@strawberry_django.filter_type(models.FHRPGroupAssignment, lookups=True)
|
@strawberry_django.filter_type(models.FHRPGroupAssignment, lookups=True)
|
||||||
class FHRPGroupAssignmentFilter(BaseObjectTypeFilterMixin, ChangeLogFilterMixin):
|
class FHRPGroupAssignmentFilter(BaseObjectTypeFilterMixin, ChangeLoggedModelFilter):
|
||||||
interface_type: Annotated['ContentTypeFilter', strawberry.lazy('core.graphql.filters')] | None = (
|
interface_type: Annotated['ContentTypeFilter', strawberry.lazy('core.graphql.filters')] | None = (
|
||||||
strawberry_django.filter_field()
|
strawberry_django.filter_field()
|
||||||
)
|
)
|
||||||
@ -168,7 +170,7 @@ class FHRPGroupAssignmentFilter(BaseObjectTypeFilterMixin, ChangeLogFilterMixin)
|
|||||||
|
|
||||||
|
|
||||||
@strawberry_django.filter_type(models.IPAddress, lookups=True)
|
@strawberry_django.filter_type(models.IPAddress, lookups=True)
|
||||||
class IPAddressFilter(ContactFilterMixin, TenancyFilterMixin, PrimaryModelFilterMixin):
|
class IPAddressFilter(ContactFilterMixin, TenancyFilterMixin, PrimaryModelFilter):
|
||||||
address: FilterLookup[str] | None = strawberry_django.filter_field()
|
address: FilterLookup[str] | None = strawberry_django.filter_field()
|
||||||
vrf: Annotated['VRFFilter', strawberry.lazy('ipam.graphql.filters')] | None = strawberry_django.filter_field()
|
vrf: Annotated['VRFFilter', strawberry.lazy('ipam.graphql.filters')] | None = strawberry_django.filter_field()
|
||||||
vrf_id: ID | None = strawberry_django.filter_field()
|
vrf_id: ID | None = strawberry_django.filter_field()
|
||||||
@ -219,7 +221,7 @@ class IPAddressFilter(ContactFilterMixin, TenancyFilterMixin, PrimaryModelFilter
|
|||||||
|
|
||||||
|
|
||||||
@strawberry_django.filter_type(models.IPRange, lookups=True)
|
@strawberry_django.filter_type(models.IPRange, lookups=True)
|
||||||
class IPRangeFilter(ContactFilterMixin, TenancyFilterMixin, PrimaryModelFilterMixin):
|
class IPRangeFilter(ContactFilterMixin, TenancyFilterMixin, PrimaryModelFilter):
|
||||||
start_address: FilterLookup[str] | None = strawberry_django.filter_field()
|
start_address: FilterLookup[str] | None = strawberry_django.filter_field()
|
||||||
end_address: FilterLookup[str] | None = strawberry_django.filter_field()
|
end_address: FilterLookup[str] | None = strawberry_django.filter_field()
|
||||||
size: Annotated['IntegerLookup', strawberry.lazy('netbox.graphql.filter_lookups')] | None = (
|
size: Annotated['IntegerLookup', strawberry.lazy('netbox.graphql.filter_lookups')] | None = (
|
||||||
@ -273,7 +275,7 @@ class IPRangeFilter(ContactFilterMixin, TenancyFilterMixin, PrimaryModelFilterMi
|
|||||||
|
|
||||||
|
|
||||||
@strawberry_django.filter_type(models.Prefix, lookups=True)
|
@strawberry_django.filter_type(models.Prefix, lookups=True)
|
||||||
class PrefixFilter(ContactFilterMixin, ScopedFilterMixin, TenancyFilterMixin, PrimaryModelFilterMixin):
|
class PrefixFilter(ContactFilterMixin, ScopedFilterMixin, TenancyFilterMixin, PrimaryModelFilter):
|
||||||
prefix: FilterLookup[str] | None = strawberry_django.filter_field()
|
prefix: FilterLookup[str] | None = strawberry_django.filter_field()
|
||||||
vrf: Annotated['VRFFilter', strawberry.lazy('ipam.graphql.filters')] | None = strawberry_django.filter_field()
|
vrf: Annotated['VRFFilter', strawberry.lazy('ipam.graphql.filters')] | None = strawberry_django.filter_field()
|
||||||
vrf_id: ID | None = strawberry_django.filter_field()
|
vrf_id: ID | None = strawberry_django.filter_field()
|
||||||
@ -310,19 +312,19 @@ class PrefixFilter(ContactFilterMixin, ScopedFilterMixin, TenancyFilterMixin, Pr
|
|||||||
|
|
||||||
|
|
||||||
@strawberry_django.filter_type(models.RIR, lookups=True)
|
@strawberry_django.filter_type(models.RIR, lookups=True)
|
||||||
class RIRFilter(OrganizationalModelFilterMixin):
|
class RIRFilter(OrganizationalModelFilter):
|
||||||
is_private: FilterLookup[bool] | None = strawberry_django.filter_field()
|
is_private: FilterLookup[bool] | None = strawberry_django.filter_field()
|
||||||
|
|
||||||
|
|
||||||
@strawberry_django.filter_type(models.Role, lookups=True)
|
@strawberry_django.filter_type(models.Role, lookups=True)
|
||||||
class RoleFilter(OrganizationalModelFilterMixin):
|
class RoleFilter(OrganizationalModelFilter):
|
||||||
weight: Annotated['IntegerLookup', strawberry.lazy('netbox.graphql.filter_lookups')] | None = (
|
weight: Annotated['IntegerLookup', strawberry.lazy('netbox.graphql.filter_lookups')] | None = (
|
||||||
strawberry_django.filter_field()
|
strawberry_django.filter_field()
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@strawberry_django.filter_type(models.RouteTarget, lookups=True)
|
@strawberry_django.filter_type(models.RouteTarget, lookups=True)
|
||||||
class RouteTargetFilter(TenancyFilterMixin, PrimaryModelFilterMixin):
|
class RouteTargetFilter(TenancyFilterMixin, PrimaryModelFilter):
|
||||||
name: FilterLookup[str] | None = strawberry_django.filter_field()
|
name: FilterLookup[str] | None = strawberry_django.filter_field()
|
||||||
importing_vrfs: Annotated['VRFFilter', strawberry.lazy('ipam.graphql.filters')] | None = (
|
importing_vrfs: Annotated['VRFFilter', strawberry.lazy('ipam.graphql.filters')] | None = (
|
||||||
strawberry_django.filter_field()
|
strawberry_django.filter_field()
|
||||||
@ -339,7 +341,7 @@ class RouteTargetFilter(TenancyFilterMixin, PrimaryModelFilterMixin):
|
|||||||
|
|
||||||
|
|
||||||
@strawberry_django.filter_type(models.Service, lookups=True)
|
@strawberry_django.filter_type(models.Service, lookups=True)
|
||||||
class ServiceFilter(ContactFilterMixin, ServiceBaseFilterMixin, PrimaryModelFilterMixin):
|
class ServiceFilter(ContactFilterMixin, ServiceBaseFilterMixin, PrimaryModelFilter):
|
||||||
name: FilterLookup[str] | None = strawberry_django.filter_field()
|
name: FilterLookup[str] | None = strawberry_django.filter_field()
|
||||||
ip_addresses: Annotated['IPAddressFilter', strawberry.lazy('ipam.graphql.filters')] | None = (
|
ip_addresses: Annotated['IPAddressFilter', strawberry.lazy('ipam.graphql.filters')] | None = (
|
||||||
strawberry_django.filter_field()
|
strawberry_django.filter_field()
|
||||||
@ -351,12 +353,12 @@ class ServiceFilter(ContactFilterMixin, ServiceBaseFilterMixin, PrimaryModelFilt
|
|||||||
|
|
||||||
|
|
||||||
@strawberry_django.filter_type(models.ServiceTemplate, lookups=True)
|
@strawberry_django.filter_type(models.ServiceTemplate, lookups=True)
|
||||||
class ServiceTemplateFilter(ServiceBaseFilterMixin, PrimaryModelFilterMixin):
|
class ServiceTemplateFilter(ServiceBaseFilterMixin, PrimaryModelFilter):
|
||||||
name: FilterLookup[str] | None = strawberry_django.filter_field()
|
name: FilterLookup[str] | None = strawberry_django.filter_field()
|
||||||
|
|
||||||
|
|
||||||
@strawberry_django.filter_type(models.VLAN, lookups=True)
|
@strawberry_django.filter_type(models.VLAN, lookups=True)
|
||||||
class VLANFilter(TenancyFilterMixin, PrimaryModelFilterMixin):
|
class VLANFilter(TenancyFilterMixin, PrimaryModelFilter):
|
||||||
site: Annotated['SiteFilter', strawberry.lazy('dcim.graphql.filters')] | None = strawberry_django.filter_field()
|
site: Annotated['SiteFilter', strawberry.lazy('dcim.graphql.filters')] | None = strawberry_django.filter_field()
|
||||||
site_id: ID | None = strawberry_django.filter_field()
|
site_id: ID | None = strawberry_django.filter_field()
|
||||||
group: Annotated['VLANGroupFilter', strawberry.lazy('ipam.graphql.filters')] | None = (
|
group: Annotated['VLANGroupFilter', strawberry.lazy('ipam.graphql.filters')] | None = (
|
||||||
@ -388,19 +390,19 @@ class VLANFilter(TenancyFilterMixin, PrimaryModelFilterMixin):
|
|||||||
|
|
||||||
|
|
||||||
@strawberry_django.filter_type(models.VLANGroup, lookups=True)
|
@strawberry_django.filter_type(models.VLANGroup, lookups=True)
|
||||||
class VLANGroupFilter(ScopedFilterMixin, OrganizationalModelFilterMixin):
|
class VLANGroupFilter(ScopedFilterMixin, OrganizationalModelFilter):
|
||||||
vid_ranges: Annotated['IntegerRangeArrayLookup', strawberry.lazy('netbox.graphql.filter_lookups')] | None = (
|
vid_ranges: Annotated['IntegerRangeArrayLookup', strawberry.lazy('netbox.graphql.filter_lookups')] | None = (
|
||||||
strawberry_django.filter_field()
|
strawberry_django.filter_field()
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@strawberry_django.filter_type(models.VLANTranslationPolicy, lookups=True)
|
@strawberry_django.filter_type(models.VLANTranslationPolicy, lookups=True)
|
||||||
class VLANTranslationPolicyFilter(PrimaryModelFilterMixin):
|
class VLANTranslationPolicyFilter(PrimaryModelFilter):
|
||||||
name: FilterLookup[str] | None = strawberry_django.filter_field()
|
name: FilterLookup[str] | None = strawberry_django.filter_field()
|
||||||
|
|
||||||
|
|
||||||
@strawberry_django.filter_type(models.VLANTranslationRule, lookups=True)
|
@strawberry_django.filter_type(models.VLANTranslationRule, lookups=True)
|
||||||
class VLANTranslationRuleFilter(NetBoxModelFilterMixin):
|
class VLANTranslationRuleFilter(NetBoxModelFilter):
|
||||||
policy: Annotated['VLANTranslationPolicyFilter', strawberry.lazy('ipam.graphql.filters')] | None = (
|
policy: Annotated['VLANTranslationPolicyFilter', strawberry.lazy('ipam.graphql.filters')] | None = (
|
||||||
strawberry_django.filter_field()
|
strawberry_django.filter_field()
|
||||||
)
|
)
|
||||||
@ -415,7 +417,7 @@ class VLANTranslationRuleFilter(NetBoxModelFilterMixin):
|
|||||||
|
|
||||||
|
|
||||||
@strawberry_django.filter_type(models.VRF, lookups=True)
|
@strawberry_django.filter_type(models.VRF, lookups=True)
|
||||||
class VRFFilter(TenancyFilterMixin, PrimaryModelFilterMixin):
|
class VRFFilter(TenancyFilterMixin, PrimaryModelFilter):
|
||||||
name: FilterLookup[str] | None = strawberry_django.filter_field()
|
name: FilterLookup[str] | None = strawberry_django.filter_field()
|
||||||
rd: FilterLookup[str] | None = strawberry_django.filter_field()
|
rd: FilterLookup[str] | None = strawberry_django.filter_field()
|
||||||
enforce_unique: FilterLookup[bool] | None = strawberry_django.filter_field()
|
enforce_unique: FilterLookup[bool] | None = strawberry_django.filter_field()
|
||||||
|
|||||||
@ -4,19 +4,13 @@ from typing import TypeVar, TYPE_CHECKING, Annotated
|
|||||||
|
|
||||||
import strawberry
|
import strawberry
|
||||||
import strawberry_django
|
import strawberry_django
|
||||||
from strawberry import ID
|
|
||||||
from strawberry_django import BaseFilterLookup, FilterLookup, DatetimeFilterLookup
|
from strawberry_django import BaseFilterLookup, FilterLookup, DatetimeFilterLookup
|
||||||
|
|
||||||
from core.graphql.filter_mixins import BaseFilterMixin, BaseObjectTypeFilterMixin, ChangeLogFilterMixin
|
from core.graphql.filter_mixins import BaseFilter
|
||||||
from extras.graphql.filter_mixins import CustomFieldsFilterMixin, JournalEntriesFilterMixin, TagsFilterMixin
|
|
||||||
|
|
||||||
__all__ = (
|
__all__ = (
|
||||||
'DistanceFilterMixin',
|
'DistanceFilterMixin',
|
||||||
'ImageAttachmentFilterMixin',
|
'ImageAttachmentFilterMixin',
|
||||||
'NestedGroupModelFilterMixin',
|
|
||||||
'NetBoxModelFilterMixin',
|
|
||||||
'OrganizationalModelFilterMixin',
|
|
||||||
'PrimaryModelFilterMixin',
|
|
||||||
'SyncedDataFilterMixin',
|
'SyncedDataFilterMixin',
|
||||||
'WeightFilterMixin',
|
'WeightFilterMixin',
|
||||||
)
|
)
|
||||||
@ -30,51 +24,15 @@ if TYPE_CHECKING:
|
|||||||
from extras.graphql.filters import *
|
from extras.graphql.filters import *
|
||||||
|
|
||||||
|
|
||||||
class NetBoxModelFilterMixin(
|
|
||||||
ChangeLogFilterMixin,
|
|
||||||
CustomFieldsFilterMixin,
|
|
||||||
JournalEntriesFilterMixin,
|
|
||||||
TagsFilterMixin,
|
|
||||||
BaseObjectTypeFilterMixin,
|
|
||||||
):
|
|
||||||
pass
|
|
||||||
|
|
||||||
|
|
||||||
@dataclass
|
@dataclass
|
||||||
class NestedGroupModelFilterMixin(NetBoxModelFilterMixin):
|
class ImageAttachmentFilterMixin(BaseFilter):
|
||||||
name: FilterLookup[str] | None = strawberry_django.filter_field()
|
|
||||||
slug: FilterLookup[str] | None = strawberry_django.filter_field()
|
|
||||||
description: FilterLookup[str] | None = strawberry_django.filter_field()
|
|
||||||
parent_id: ID | None = strawberry_django.filter_field()
|
|
||||||
|
|
||||||
|
|
||||||
@dataclass
|
|
||||||
class OrganizationalModelFilterMixin(
|
|
||||||
ChangeLogFilterMixin,
|
|
||||||
CustomFieldsFilterMixin,
|
|
||||||
TagsFilterMixin,
|
|
||||||
BaseObjectTypeFilterMixin,
|
|
||||||
):
|
|
||||||
name: FilterLookup[str] | None = strawberry_django.filter_field()
|
|
||||||
slug: FilterLookup[str] | None = strawberry_django.filter_field()
|
|
||||||
description: FilterLookup[str] | None = strawberry_django.filter_field()
|
|
||||||
|
|
||||||
|
|
||||||
@dataclass
|
|
||||||
class PrimaryModelFilterMixin(NetBoxModelFilterMixin):
|
|
||||||
description: FilterLookup[str] | None = strawberry_django.filter_field()
|
|
||||||
comments: FilterLookup[str] | None = strawberry_django.filter_field()
|
|
||||||
|
|
||||||
|
|
||||||
@dataclass
|
|
||||||
class ImageAttachmentFilterMixin(BaseFilterMixin):
|
|
||||||
images: Annotated['ImageAttachmentFilter', strawberry.lazy('extras.graphql.filters')] | None = (
|
images: Annotated['ImageAttachmentFilter', strawberry.lazy('extras.graphql.filters')] | None = (
|
||||||
strawberry_django.filter_field()
|
strawberry_django.filter_field()
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@dataclass
|
@dataclass
|
||||||
class WeightFilterMixin(BaseFilterMixin):
|
class WeightFilterMixin(BaseFilter):
|
||||||
weight: FilterLookup[float] | None = strawberry_django.filter_field()
|
weight: FilterLookup[float] | None = strawberry_django.filter_field()
|
||||||
weight_unit: BaseFilterLookup[Annotated['WeightUnitEnum', strawberry.lazy('netbox.graphql.enums')]] | None = (
|
weight_unit: BaseFilterLookup[Annotated['WeightUnitEnum', strawberry.lazy('netbox.graphql.enums')]] | None = (
|
||||||
strawberry_django.filter_field()
|
strawberry_django.filter_field()
|
||||||
@ -82,7 +40,7 @@ class WeightFilterMixin(BaseFilterMixin):
|
|||||||
|
|
||||||
|
|
||||||
@dataclass
|
@dataclass
|
||||||
class SyncedDataFilterMixin(BaseFilterMixin):
|
class SyncedDataFilterMixin(BaseFilter):
|
||||||
data_source: Annotated['DataSourceFilter', strawberry.lazy('core.graphql.filters')] | None = (
|
data_source: Annotated['DataSourceFilter', strawberry.lazy('core.graphql.filters')] | None = (
|
||||||
strawberry_django.filter_field()
|
strawberry_django.filter_field()
|
||||||
)
|
)
|
||||||
@ -97,7 +55,7 @@ class SyncedDataFilterMixin(BaseFilterMixin):
|
|||||||
|
|
||||||
|
|
||||||
@dataclass
|
@dataclass
|
||||||
class DistanceFilterMixin(BaseFilterMixin):
|
class DistanceFilterMixin(BaseFilter):
|
||||||
distance: FilterLookup[float] | None = strawberry_django.filter_field()
|
distance: FilterLookup[float] | None = strawberry_django.filter_field()
|
||||||
distance_unit: BaseFilterLookup[Annotated['DistanceUnitEnum', strawberry.lazy('netbox.graphql.enums')]] | None = (
|
distance_unit: BaseFilterLookup[Annotated['DistanceUnitEnum', strawberry.lazy('netbox.graphql.enums')]] | None = (
|
||||||
strawberry_django.filter_field()
|
strawberry_django.filter_field()
|
||||||
|
|||||||
64
netbox/netbox/graphql/filters.py
Normal file
64
netbox/netbox/graphql/filters.py
Normal file
@ -0,0 +1,64 @@
|
|||||||
|
from dataclasses import dataclass
|
||||||
|
from datetime import datetime
|
||||||
|
from typing import Annotated, TYPE_CHECKING
|
||||||
|
|
||||||
|
import strawberry
|
||||||
|
import strawberry_django
|
||||||
|
from strawberry import ID
|
||||||
|
from strawberry_django import FilterLookup, DatetimeFilterLookup
|
||||||
|
|
||||||
|
from core.graphql.filter_mixins import BaseFilter
|
||||||
|
from extras.graphql.filter_mixins import CustomFieldsFilterMixin, JournalEntriesFilterMixin, TagsFilterMixin
|
||||||
|
|
||||||
|
if TYPE_CHECKING:
|
||||||
|
from .filters import *
|
||||||
|
|
||||||
|
__all__ = (
|
||||||
|
'ChangeLoggedModelFilter',
|
||||||
|
'NestedGroupModelFilter',
|
||||||
|
'NetBoxModelFilter',
|
||||||
|
'OrganizationalModelFilter',
|
||||||
|
'PrimaryModelFilter',
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@dataclass
|
||||||
|
class ChangeLoggedModelFilter(BaseFilter):
|
||||||
|
id: FilterLookup[ID] | None = strawberry_django.filter_field()
|
||||||
|
# TODO: "changelog" is not a valid field name; needs to be updated for ObjectChange
|
||||||
|
changelog: Annotated['ObjectChangeFilter', strawberry.lazy('core.graphql.filters')] | None = (
|
||||||
|
strawberry_django.filter_field()
|
||||||
|
)
|
||||||
|
created: DatetimeFilterLookup[datetime] | None = strawberry_django.filter_field()
|
||||||
|
last_updated: DatetimeFilterLookup[datetime] | None = strawberry_django.filter_field()
|
||||||
|
|
||||||
|
|
||||||
|
class NetBoxModelFilter(
|
||||||
|
ChangeLoggedModelFilter,
|
||||||
|
CustomFieldsFilterMixin,
|
||||||
|
JournalEntriesFilterMixin,
|
||||||
|
TagsFilterMixin,
|
||||||
|
BaseFilter,
|
||||||
|
):
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
@dataclass
|
||||||
|
class NestedGroupModelFilter(NetBoxModelFilter):
|
||||||
|
name: FilterLookup[str] | None = strawberry_django.filter_field()
|
||||||
|
slug: FilterLookup[str] | None = strawberry_django.filter_field()
|
||||||
|
description: FilterLookup[str] | None = strawberry_django.filter_field()
|
||||||
|
parent_id: ID | None = strawberry_django.filter_field()
|
||||||
|
|
||||||
|
|
||||||
|
@dataclass
|
||||||
|
class OrganizationalModelFilter(NetBoxModelFilter):
|
||||||
|
name: FilterLookup[str] | None = strawberry_django.filter_field()
|
||||||
|
slug: FilterLookup[str] | None = strawberry_django.filter_field()
|
||||||
|
description: FilterLookup[str] | None = strawberry_django.filter_field()
|
||||||
|
|
||||||
|
|
||||||
|
@dataclass
|
||||||
|
class PrimaryModelFilter(NetBoxModelFilter):
|
||||||
|
description: FilterLookup[str] | None = strawberry_django.filter_field()
|
||||||
|
comments: FilterLookup[str] | None = strawberry_django.filter_field()
|
||||||
@ -5,7 +5,7 @@ import strawberry
|
|||||||
import strawberry_django
|
import strawberry_django
|
||||||
from strawberry import ID
|
from strawberry import ID
|
||||||
|
|
||||||
from core.graphql.filter_mixins import BaseFilterMixin
|
from core.graphql.filter_mixins import BaseFilter
|
||||||
|
|
||||||
if TYPE_CHECKING:
|
if TYPE_CHECKING:
|
||||||
from netbox.graphql.filter_lookups import TreeNodeFilter
|
from netbox.graphql.filter_lookups import TreeNodeFilter
|
||||||
@ -18,14 +18,14 @@ __all__ = (
|
|||||||
|
|
||||||
|
|
||||||
@dataclass
|
@dataclass
|
||||||
class ContactFilterMixin(BaseFilterMixin):
|
class ContactFilterMixin(BaseFilter):
|
||||||
contacts: Annotated['ContactAssignmentFilter', strawberry.lazy('tenancy.graphql.filters')] | None = (
|
contacts: Annotated['ContactAssignmentFilter', strawberry.lazy('tenancy.graphql.filters')] | None = (
|
||||||
strawberry_django.filter_field()
|
strawberry_django.filter_field()
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@dataclass
|
@dataclass
|
||||||
class TenancyFilterMixin(BaseFilterMixin):
|
class TenancyFilterMixin(BaseFilter):
|
||||||
tenant: Annotated['TenantFilter', strawberry.lazy('tenancy.graphql.filters')] | None = (
|
tenant: Annotated['TenantFilter', strawberry.lazy('tenancy.graphql.filters')] | None = (
|
||||||
strawberry_django.filter_field()
|
strawberry_django.filter_field()
|
||||||
)
|
)
|
||||||
|
|||||||
@ -5,12 +5,9 @@ import strawberry_django
|
|||||||
from strawberry.scalars import ID
|
from strawberry.scalars import ID
|
||||||
from strawberry_django import BaseFilterLookup, FilterLookup
|
from strawberry_django import BaseFilterLookup, FilterLookup
|
||||||
|
|
||||||
from core.graphql.filter_mixins import ChangeLogFilterMixin
|
|
||||||
from extras.graphql.filter_mixins import CustomFieldsFilterMixin, TagsFilterMixin
|
from extras.graphql.filter_mixins import CustomFieldsFilterMixin, TagsFilterMixin
|
||||||
from netbox.graphql.filter_mixins import (
|
from netbox.graphql.filters import (
|
||||||
NestedGroupModelFilterMixin,
|
ChangeLoggedModelFilter, NestedGroupModelFilter, OrganizationalModelFilter, PrimaryModelFilter,
|
||||||
OrganizationalModelFilterMixin,
|
|
||||||
PrimaryModelFilterMixin,
|
|
||||||
)
|
)
|
||||||
from tenancy import models
|
from tenancy import models
|
||||||
from .filter_mixins import ContactFilterMixin
|
from .filter_mixins import ContactFilterMixin
|
||||||
@ -57,7 +54,7 @@ __all__ = (
|
|||||||
|
|
||||||
|
|
||||||
@strawberry_django.filter_type(models.Tenant, lookups=True)
|
@strawberry_django.filter_type(models.Tenant, lookups=True)
|
||||||
class TenantFilter(PrimaryModelFilterMixin, ContactFilterMixin):
|
class TenantFilter(PrimaryModelFilter, ContactFilterMixin):
|
||||||
name: FilterLookup[str] | None = strawberry_django.filter_field()
|
name: FilterLookup[str] | None = strawberry_django.filter_field()
|
||||||
slug: FilterLookup[str] | None = strawberry_django.filter_field()
|
slug: FilterLookup[str] | None = strawberry_django.filter_field()
|
||||||
group: Annotated['TenantGroupFilter', strawberry.lazy('tenancy.graphql.filters')] | None = (
|
group: Annotated['TenantGroupFilter', strawberry.lazy('tenancy.graphql.filters')] | None = (
|
||||||
@ -136,7 +133,7 @@ class TenantFilter(PrimaryModelFilterMixin, ContactFilterMixin):
|
|||||||
|
|
||||||
|
|
||||||
@strawberry_django.filter_type(models.TenantGroup, lookups=True)
|
@strawberry_django.filter_type(models.TenantGroup, lookups=True)
|
||||||
class TenantGroupFilter(OrganizationalModelFilterMixin):
|
class TenantGroupFilter(OrganizationalModelFilter):
|
||||||
parent: Annotated['TenantGroupFilter', strawberry.lazy('tenancy.graphql.filters')] | None = (
|
parent: Annotated['TenantGroupFilter', strawberry.lazy('tenancy.graphql.filters')] | None = (
|
||||||
strawberry_django.filter_field()
|
strawberry_django.filter_field()
|
||||||
)
|
)
|
||||||
@ -150,7 +147,7 @@ class TenantGroupFilter(OrganizationalModelFilterMixin):
|
|||||||
|
|
||||||
|
|
||||||
@strawberry_django.filter_type(models.Contact, lookups=True)
|
@strawberry_django.filter_type(models.Contact, lookups=True)
|
||||||
class ContactFilter(PrimaryModelFilterMixin):
|
class ContactFilter(PrimaryModelFilter):
|
||||||
name: FilterLookup[str] | None = strawberry_django.filter_field()
|
name: FilterLookup[str] | None = strawberry_django.filter_field()
|
||||||
title: FilterLookup[str] | None = strawberry_django.filter_field()
|
title: FilterLookup[str] | None = strawberry_django.filter_field()
|
||||||
phone: FilterLookup[str] | None = strawberry_django.filter_field()
|
phone: FilterLookup[str] | None = strawberry_django.filter_field()
|
||||||
@ -166,19 +163,19 @@ class ContactFilter(PrimaryModelFilterMixin):
|
|||||||
|
|
||||||
|
|
||||||
@strawberry_django.filter_type(models.ContactRole, lookups=True)
|
@strawberry_django.filter_type(models.ContactRole, lookups=True)
|
||||||
class ContactRoleFilter(OrganizationalModelFilterMixin):
|
class ContactRoleFilter(OrganizationalModelFilter):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
||||||
@strawberry_django.filter_type(models.ContactGroup, lookups=True)
|
@strawberry_django.filter_type(models.ContactGroup, lookups=True)
|
||||||
class ContactGroupFilter(NestedGroupModelFilterMixin):
|
class ContactGroupFilter(NestedGroupModelFilter):
|
||||||
parent: Annotated['ContactGroupFilter', strawberry.lazy('tenancy.graphql.filters')] | None = (
|
parent: Annotated['ContactGroupFilter', strawberry.lazy('tenancy.graphql.filters')] | None = (
|
||||||
strawberry_django.filter_field()
|
strawberry_django.filter_field()
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@strawberry_django.filter_type(models.ContactAssignment, lookups=True)
|
@strawberry_django.filter_type(models.ContactAssignment, lookups=True)
|
||||||
class ContactAssignmentFilter(CustomFieldsFilterMixin, TagsFilterMixin, ChangeLogFilterMixin):
|
class ContactAssignmentFilter(CustomFieldsFilterMixin, TagsFilterMixin, ChangeLoggedModelFilter):
|
||||||
object_type: Annotated['ContentTypeFilter', strawberry.lazy('core.graphql.filters')] | None = (
|
object_type: Annotated['ContentTypeFilter', strawberry.lazy('core.graphql.filters')] | None = (
|
||||||
strawberry_django.filter_field()
|
strawberry_django.filter_field()
|
||||||
)
|
)
|
||||||
|
|||||||
@ -6,18 +6,18 @@ import strawberry_django
|
|||||||
from strawberry import ID
|
from strawberry import ID
|
||||||
from strawberry_django import FilterLookup
|
from strawberry_django import FilterLookup
|
||||||
|
|
||||||
from netbox.graphql.filter_mixins import NetBoxModelFilterMixin
|
from netbox.graphql.filters import NetBoxModelFilter
|
||||||
|
|
||||||
if TYPE_CHECKING:
|
if TYPE_CHECKING:
|
||||||
from .filters import VirtualMachineFilter
|
from .filters import VirtualMachineFilter
|
||||||
|
|
||||||
__all__ = (
|
__all__ = (
|
||||||
'VMComponentFilterMixin',
|
'VMComponentFilter',
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@dataclass
|
@dataclass
|
||||||
class VMComponentFilterMixin(NetBoxModelFilterMixin):
|
class VMComponentFilter(NetBoxModelFilter):
|
||||||
virtual_machine: Annotated['VirtualMachineFilter', strawberry.lazy('virtualization.graphql.filters')] | None = (
|
virtual_machine: Annotated['VirtualMachineFilter', strawberry.lazy('virtualization.graphql.filters')] | None = (
|
||||||
strawberry_django.filter_field()
|
strawberry_django.filter_field()
|
||||||
)
|
)
|
||||||
|
|||||||
@ -7,14 +7,11 @@ from strawberry_django import BaseFilterLookup, FilterLookup
|
|||||||
|
|
||||||
from dcim.graphql.filter_mixins import InterfaceBaseFilterMixin, RenderConfigFilterMixin, ScopedFilterMixin
|
from dcim.graphql.filter_mixins import InterfaceBaseFilterMixin, RenderConfigFilterMixin, ScopedFilterMixin
|
||||||
from extras.graphql.filter_mixins import ConfigContextFilterMixin
|
from extras.graphql.filter_mixins import ConfigContextFilterMixin
|
||||||
from netbox.graphql.filter_mixins import (
|
from netbox.graphql.filter_mixins import ImageAttachmentFilterMixin
|
||||||
ImageAttachmentFilterMixin,
|
from netbox.graphql.filters import OrganizationalModelFilter, PrimaryModelFilter
|
||||||
OrganizationalModelFilterMixin,
|
|
||||||
PrimaryModelFilterMixin,
|
|
||||||
)
|
|
||||||
from tenancy.graphql.filter_mixins import ContactFilterMixin, TenancyFilterMixin
|
from tenancy.graphql.filter_mixins import ContactFilterMixin, TenancyFilterMixin
|
||||||
from virtualization import models
|
from virtualization import models
|
||||||
from virtualization.graphql.filter_mixins import VMComponentFilterMixin
|
from virtualization.graphql.filter_mixins import VMComponentFilter
|
||||||
|
|
||||||
if TYPE_CHECKING:
|
if TYPE_CHECKING:
|
||||||
from .enums import *
|
from .enums import *
|
||||||
@ -40,7 +37,7 @@ __all__ = (
|
|||||||
|
|
||||||
|
|
||||||
@strawberry_django.filter_type(models.Cluster, lookups=True)
|
@strawberry_django.filter_type(models.Cluster, lookups=True)
|
||||||
class ClusterFilter(ContactFilterMixin, ScopedFilterMixin, TenancyFilterMixin, PrimaryModelFilterMixin):
|
class ClusterFilter(ContactFilterMixin, ScopedFilterMixin, TenancyFilterMixin, PrimaryModelFilter):
|
||||||
name: FilterLookup[str] | None = strawberry_django.filter_field()
|
name: FilterLookup[str] | None = strawberry_django.filter_field()
|
||||||
type: Annotated['ClusterTypeFilter', strawberry.lazy('virtualization.graphql.filters')] | None = (
|
type: Annotated['ClusterTypeFilter', strawberry.lazy('virtualization.graphql.filters')] | None = (
|
||||||
strawberry_django.filter_field()
|
strawberry_django.filter_field()
|
||||||
@ -59,14 +56,14 @@ class ClusterFilter(ContactFilterMixin, ScopedFilterMixin, TenancyFilterMixin, P
|
|||||||
|
|
||||||
|
|
||||||
@strawberry_django.filter_type(models.ClusterGroup, lookups=True)
|
@strawberry_django.filter_type(models.ClusterGroup, lookups=True)
|
||||||
class ClusterGroupFilter(ContactFilterMixin, OrganizationalModelFilterMixin):
|
class ClusterGroupFilter(ContactFilterMixin, OrganizationalModelFilter):
|
||||||
vlan_groups: Annotated['VLANGroupFilter', strawberry.lazy('ipam.graphql.filters')] | None = (
|
vlan_groups: Annotated['VLANGroupFilter', strawberry.lazy('ipam.graphql.filters')] | None = (
|
||||||
strawberry_django.filter_field()
|
strawberry_django.filter_field()
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@strawberry_django.filter_type(models.ClusterType, lookups=True)
|
@strawberry_django.filter_type(models.ClusterType, lookups=True)
|
||||||
class ClusterTypeFilter(OrganizationalModelFilterMixin):
|
class ClusterTypeFilter(OrganizationalModelFilter):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
||||||
@ -77,7 +74,7 @@ class VirtualMachineFilter(
|
|||||||
RenderConfigFilterMixin,
|
RenderConfigFilterMixin,
|
||||||
ConfigContextFilterMixin,
|
ConfigContextFilterMixin,
|
||||||
TenancyFilterMixin,
|
TenancyFilterMixin,
|
||||||
PrimaryModelFilterMixin,
|
PrimaryModelFilter,
|
||||||
):
|
):
|
||||||
name: FilterLookup[str] | None = strawberry_django.filter_field()
|
name: FilterLookup[str] | None = strawberry_django.filter_field()
|
||||||
site: Annotated['SiteFilter', strawberry.lazy('dcim.graphql.filters')] | None = strawberry_django.filter_field()
|
site: Annotated['SiteFilter', strawberry.lazy('dcim.graphql.filters')] | None = strawberry_django.filter_field()
|
||||||
@ -138,7 +135,7 @@ class VirtualMachineFilter(
|
|||||||
|
|
||||||
|
|
||||||
@strawberry_django.filter_type(models.VMInterface, lookups=True)
|
@strawberry_django.filter_type(models.VMInterface, lookups=True)
|
||||||
class VMInterfaceFilter(VMComponentFilterMixin, InterfaceBaseFilterMixin):
|
class VMInterfaceFilter(VMComponentFilter, InterfaceBaseFilterMixin):
|
||||||
ip_addresses: Annotated['IPAddressFilter', strawberry.lazy('ipam.graphql.filters')] | None = (
|
ip_addresses: Annotated['IPAddressFilter', strawberry.lazy('ipam.graphql.filters')] | None = (
|
||||||
strawberry_django.filter_field()
|
strawberry_django.filter_field()
|
||||||
)
|
)
|
||||||
@ -163,7 +160,7 @@ class VMInterfaceFilter(VMComponentFilterMixin, InterfaceBaseFilterMixin):
|
|||||||
|
|
||||||
|
|
||||||
@strawberry_django.filter_type(models.VirtualDisk, lookups=True)
|
@strawberry_django.filter_type(models.VirtualDisk, lookups=True)
|
||||||
class VirtualDiskFilter(VMComponentFilterMixin):
|
class VirtualDiskFilter(VMComponentFilter):
|
||||||
size: Annotated['IntegerLookup', strawberry.lazy('netbox.graphql.filter_lookups')] | None = (
|
size: Annotated['IntegerLookup', strawberry.lazy('netbox.graphql.filter_lookups')] | None = (
|
||||||
strawberry_django.filter_field()
|
strawberry_django.filter_field()
|
||||||
)
|
)
|
||||||
|
|||||||
@ -5,9 +5,11 @@ import strawberry_django
|
|||||||
from strawberry.scalars import ID
|
from strawberry.scalars import ID
|
||||||
from strawberry_django import BaseFilterLookup, FilterLookup
|
from strawberry_django import BaseFilterLookup, FilterLookup
|
||||||
|
|
||||||
from core.graphql.filter_mixins import BaseObjectTypeFilterMixin, ChangeLogFilterMixin
|
from core.graphql.filter_mixins import BaseObjectTypeFilterMixin
|
||||||
from extras.graphql.filter_mixins import CustomFieldsFilterMixin, TagsFilterMixin
|
from extras.graphql.filter_mixins import CustomFieldsFilterMixin, TagsFilterMixin
|
||||||
from netbox.graphql.filter_mixins import NetBoxModelFilterMixin, OrganizationalModelFilterMixin, PrimaryModelFilterMixin
|
from netbox.graphql.filters import (
|
||||||
|
ChangeLoggedModelFilter, NetBoxModelFilter, OrganizationalModelFilter, PrimaryModelFilter,
|
||||||
|
)
|
||||||
from tenancy.graphql.filter_mixins import ContactFilterMixin, TenancyFilterMixin
|
from tenancy.graphql.filter_mixins import ContactFilterMixin, TenancyFilterMixin
|
||||||
from vpn import models
|
from vpn import models
|
||||||
|
|
||||||
@ -32,13 +34,13 @@ __all__ = (
|
|||||||
|
|
||||||
|
|
||||||
@strawberry_django.filter_type(models.TunnelGroup, lookups=True)
|
@strawberry_django.filter_type(models.TunnelGroup, lookups=True)
|
||||||
class TunnelGroupFilter(OrganizationalModelFilterMixin):
|
class TunnelGroupFilter(OrganizationalModelFilter):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
||||||
@strawberry_django.filter_type(models.TunnelTermination, lookups=True)
|
@strawberry_django.filter_type(models.TunnelTermination, lookups=True)
|
||||||
class TunnelTerminationFilter(
|
class TunnelTerminationFilter(
|
||||||
BaseObjectTypeFilterMixin, CustomFieldsFilterMixin, TagsFilterMixin, ChangeLogFilterMixin
|
BaseObjectTypeFilterMixin, CustomFieldsFilterMixin, TagsFilterMixin, ChangeLoggedModelFilter
|
||||||
):
|
):
|
||||||
tunnel: Annotated['TunnelFilter', strawberry.lazy('vpn.graphql.filters')] | None = strawberry_django.filter_field()
|
tunnel: Annotated['TunnelFilter', strawberry.lazy('vpn.graphql.filters')] | None = strawberry_django.filter_field()
|
||||||
tunnel_id: ID | None = strawberry_django.filter_field()
|
tunnel_id: ID | None = strawberry_django.filter_field()
|
||||||
@ -59,7 +61,7 @@ class TunnelTerminationFilter(
|
|||||||
|
|
||||||
|
|
||||||
@strawberry_django.filter_type(models.Tunnel, lookups=True)
|
@strawberry_django.filter_type(models.Tunnel, lookups=True)
|
||||||
class TunnelFilter(TenancyFilterMixin, PrimaryModelFilterMixin):
|
class TunnelFilter(TenancyFilterMixin, PrimaryModelFilter):
|
||||||
name: FilterLookup[str] | None = strawberry_django.filter_field()
|
name: FilterLookup[str] | None = strawberry_django.filter_field()
|
||||||
status: BaseFilterLookup[Annotated['TunnelStatusEnum', strawberry.lazy('vpn.graphql.enums')]] | None = (
|
status: BaseFilterLookup[Annotated['TunnelStatusEnum', strawberry.lazy('vpn.graphql.enums')]] | None = (
|
||||||
strawberry_django.filter_field()
|
strawberry_django.filter_field()
|
||||||
@ -85,7 +87,7 @@ class TunnelFilter(TenancyFilterMixin, PrimaryModelFilterMixin):
|
|||||||
|
|
||||||
|
|
||||||
@strawberry_django.filter_type(models.IKEProposal, lookups=True)
|
@strawberry_django.filter_type(models.IKEProposal, lookups=True)
|
||||||
class IKEProposalFilter(PrimaryModelFilterMixin):
|
class IKEProposalFilter(PrimaryModelFilter):
|
||||||
name: FilterLookup[str] | None = strawberry_django.filter_field()
|
name: FilterLookup[str] | None = strawberry_django.filter_field()
|
||||||
authentication_method: (
|
authentication_method: (
|
||||||
BaseFilterLookup[Annotated['AuthenticationMethodEnum', strawberry.lazy('vpn.graphql.enums')]] | None
|
BaseFilterLookup[Annotated['AuthenticationMethodEnum', strawberry.lazy('vpn.graphql.enums')]] | None
|
||||||
@ -114,7 +116,7 @@ class IKEProposalFilter(PrimaryModelFilterMixin):
|
|||||||
|
|
||||||
|
|
||||||
@strawberry_django.filter_type(models.IKEPolicy, lookups=True)
|
@strawberry_django.filter_type(models.IKEPolicy, lookups=True)
|
||||||
class IKEPolicyFilter(PrimaryModelFilterMixin):
|
class IKEPolicyFilter(PrimaryModelFilter):
|
||||||
name: FilterLookup[str] | None = strawberry_django.filter_field()
|
name: FilterLookup[str] | None = strawberry_django.filter_field()
|
||||||
version: BaseFilterLookup[Annotated['IKEVersionEnum', strawberry.lazy('vpn.graphql.enums')]] | None = (
|
version: BaseFilterLookup[Annotated['IKEVersionEnum', strawberry.lazy('vpn.graphql.enums')]] | None = (
|
||||||
strawberry_django.filter_field()
|
strawberry_django.filter_field()
|
||||||
@ -129,7 +131,7 @@ class IKEPolicyFilter(PrimaryModelFilterMixin):
|
|||||||
|
|
||||||
|
|
||||||
@strawberry_django.filter_type(models.IPSecProposal, lookups=True)
|
@strawberry_django.filter_type(models.IPSecProposal, lookups=True)
|
||||||
class IPSecProposalFilter(PrimaryModelFilterMixin):
|
class IPSecProposalFilter(PrimaryModelFilter):
|
||||||
name: FilterLookup[str] | None = strawberry_django.filter_field()
|
name: FilterLookup[str] | None = strawberry_django.filter_field()
|
||||||
encryption_algorithm: (
|
encryption_algorithm: (
|
||||||
BaseFilterLookup[Annotated['EncryptionAlgorithmEnum', strawberry.lazy('vpn.graphql.enums')]] | None
|
BaseFilterLookup[Annotated['EncryptionAlgorithmEnum', strawberry.lazy('vpn.graphql.enums')]] | None
|
||||||
@ -155,7 +157,7 @@ class IPSecProposalFilter(PrimaryModelFilterMixin):
|
|||||||
|
|
||||||
|
|
||||||
@strawberry_django.filter_type(models.IPSecPolicy, lookups=True)
|
@strawberry_django.filter_type(models.IPSecPolicy, lookups=True)
|
||||||
class IPSecPolicyFilter(PrimaryModelFilterMixin):
|
class IPSecPolicyFilter(PrimaryModelFilter):
|
||||||
name: FilterLookup[str] | None = strawberry_django.filter_field()
|
name: FilterLookup[str] | None = strawberry_django.filter_field()
|
||||||
proposals: Annotated['IPSecProposalFilter', strawberry.lazy('vpn.graphql.filters')] | None = (
|
proposals: Annotated['IPSecProposalFilter', strawberry.lazy('vpn.graphql.filters')] | None = (
|
||||||
strawberry_django.filter_field()
|
strawberry_django.filter_field()
|
||||||
@ -166,7 +168,7 @@ class IPSecPolicyFilter(PrimaryModelFilterMixin):
|
|||||||
|
|
||||||
|
|
||||||
@strawberry_django.filter_type(models.IPSecProfile, lookups=True)
|
@strawberry_django.filter_type(models.IPSecProfile, lookups=True)
|
||||||
class IPSecProfileFilter(PrimaryModelFilterMixin):
|
class IPSecProfileFilter(PrimaryModelFilter):
|
||||||
name: FilterLookup[str] | None = strawberry_django.filter_field()
|
name: FilterLookup[str] | None = strawberry_django.filter_field()
|
||||||
mode: BaseFilterLookup[Annotated['IPSecModeEnum', strawberry.lazy('vpn.graphql.enums')]] | None = (
|
mode: BaseFilterLookup[Annotated['IPSecModeEnum', strawberry.lazy('vpn.graphql.enums')]] | None = (
|
||||||
strawberry_django.filter_field()
|
strawberry_django.filter_field()
|
||||||
@ -182,7 +184,7 @@ class IPSecProfileFilter(PrimaryModelFilterMixin):
|
|||||||
|
|
||||||
|
|
||||||
@strawberry_django.filter_type(models.L2VPN, lookups=True)
|
@strawberry_django.filter_type(models.L2VPN, lookups=True)
|
||||||
class L2VPNFilter(ContactFilterMixin, TenancyFilterMixin, PrimaryModelFilterMixin):
|
class L2VPNFilter(ContactFilterMixin, TenancyFilterMixin, PrimaryModelFilter):
|
||||||
name: FilterLookup[str] | None = strawberry_django.filter_field()
|
name: FilterLookup[str] | None = strawberry_django.filter_field()
|
||||||
slug: FilterLookup[str] | None = strawberry_django.filter_field()
|
slug: FilterLookup[str] | None = strawberry_django.filter_field()
|
||||||
type: BaseFilterLookup[Annotated['L2VPNTypeEnum', strawberry.lazy('vpn.graphql.enums')]] | None = (
|
type: BaseFilterLookup[Annotated['L2VPNTypeEnum', strawberry.lazy('vpn.graphql.enums')]] | None = (
|
||||||
@ -206,7 +208,7 @@ class L2VPNFilter(ContactFilterMixin, TenancyFilterMixin, PrimaryModelFilterMixi
|
|||||||
|
|
||||||
|
|
||||||
@strawberry_django.filter_type(models.L2VPNTermination, lookups=True)
|
@strawberry_django.filter_type(models.L2VPNTermination, lookups=True)
|
||||||
class L2VPNTerminationFilter(NetBoxModelFilterMixin):
|
class L2VPNTerminationFilter(NetBoxModelFilter):
|
||||||
l2vpn: Annotated['L2VPNFilter', strawberry.lazy('vpn.graphql.filters')] | None = strawberry_django.filter_field()
|
l2vpn: Annotated['L2VPNFilter', strawberry.lazy('vpn.graphql.filters')] | None = strawberry_django.filter_field()
|
||||||
l2vpn_id: ID | None = strawberry_django.filter_field()
|
l2vpn_id: ID | None = strawberry_django.filter_field()
|
||||||
assigned_object_type: Annotated['ContentTypeFilter', strawberry.lazy('core.graphql.filters')] | None = (
|
assigned_object_type: Annotated['ContentTypeFilter', strawberry.lazy('core.graphql.filters')] | None = (
|
||||||
|
|||||||
@ -5,7 +5,7 @@ import strawberry
|
|||||||
import strawberry_django
|
import strawberry_django
|
||||||
from strawberry_django import FilterLookup
|
from strawberry_django import FilterLookup
|
||||||
|
|
||||||
from core.graphql.filter_mixins import BaseFilterMixin
|
from core.graphql.filter_mixins import BaseFilter
|
||||||
|
|
||||||
if TYPE_CHECKING:
|
if TYPE_CHECKING:
|
||||||
from .enums import *
|
from .enums import *
|
||||||
@ -16,7 +16,7 @@ __all__ = (
|
|||||||
|
|
||||||
|
|
||||||
@dataclass
|
@dataclass
|
||||||
class WirelessAuthenticationBaseFilterMixin(BaseFilterMixin):
|
class WirelessAuthenticationBaseFilterMixin(BaseFilter):
|
||||||
auth_type: Annotated['WirelessAuthTypeEnum', strawberry.lazy('wireless.graphql.enums')] | None = (
|
auth_type: Annotated['WirelessAuthTypeEnum', strawberry.lazy('wireless.graphql.enums')] | None = (
|
||||||
strawberry_django.filter_field()
|
strawberry_django.filter_field()
|
||||||
)
|
)
|
||||||
|
|||||||
@ -6,7 +6,8 @@ from strawberry.scalars import ID
|
|||||||
from strawberry_django import BaseFilterLookup, FilterLookup
|
from strawberry_django import BaseFilterLookup, FilterLookup
|
||||||
|
|
||||||
from dcim.graphql.filter_mixins import ScopedFilterMixin
|
from dcim.graphql.filter_mixins import ScopedFilterMixin
|
||||||
from netbox.graphql.filter_mixins import DistanceFilterMixin, PrimaryModelFilterMixin, NestedGroupModelFilterMixin
|
from netbox.graphql.filter_mixins import DistanceFilterMixin
|
||||||
|
from netbox.graphql.filters import PrimaryModelFilter, NestedGroupModelFilter
|
||||||
from tenancy.graphql.filter_mixins import TenancyFilterMixin
|
from tenancy.graphql.filter_mixins import TenancyFilterMixin
|
||||||
from wireless import models
|
from wireless import models
|
||||||
from .filter_mixins import WirelessAuthenticationBaseFilterMixin
|
from .filter_mixins import WirelessAuthenticationBaseFilterMixin
|
||||||
@ -24,7 +25,7 @@ __all__ = (
|
|||||||
|
|
||||||
|
|
||||||
@strawberry_django.filter_type(models.WirelessLANGroup, lookups=True)
|
@strawberry_django.filter_type(models.WirelessLANGroup, lookups=True)
|
||||||
class WirelessLANGroupFilter(NestedGroupModelFilterMixin):
|
class WirelessLANGroupFilter(NestedGroupModelFilter):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
||||||
@ -33,7 +34,7 @@ class WirelessLANFilter(
|
|||||||
WirelessAuthenticationBaseFilterMixin,
|
WirelessAuthenticationBaseFilterMixin,
|
||||||
ScopedFilterMixin,
|
ScopedFilterMixin,
|
||||||
TenancyFilterMixin,
|
TenancyFilterMixin,
|
||||||
PrimaryModelFilterMixin
|
PrimaryModelFilter
|
||||||
):
|
):
|
||||||
ssid: FilterLookup[str] | None = strawberry_django.filter_field()
|
ssid: FilterLookup[str] | None = strawberry_django.filter_field()
|
||||||
status: BaseFilterLookup[Annotated['WirelessLANStatusEnum', strawberry.lazy('wireless.graphql.enums')]] | None = (
|
status: BaseFilterLookup[Annotated['WirelessLANStatusEnum', strawberry.lazy('wireless.graphql.enums')]] | None = (
|
||||||
@ -52,7 +53,7 @@ class WirelessLinkFilter(
|
|||||||
WirelessAuthenticationBaseFilterMixin,
|
WirelessAuthenticationBaseFilterMixin,
|
||||||
DistanceFilterMixin,
|
DistanceFilterMixin,
|
||||||
TenancyFilterMixin,
|
TenancyFilterMixin,
|
||||||
PrimaryModelFilterMixin
|
PrimaryModelFilter
|
||||||
):
|
):
|
||||||
interface_a: Annotated['InterfaceFilter', strawberry.lazy('dcim.graphql.filters')] | None = (
|
interface_a: Annotated['InterfaceFilter', strawberry.lazy('dcim.graphql.filters')] | None = (
|
||||||
strawberry_django.filter_field()
|
strawberry_django.filter_field()
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user