mirror of
https://github.com/netbox-community/netbox.git
synced 2025-12-12 03:19:36 -06:00
Refactor filter mixins
This commit is contained in:
parent
bfab461e43
commit
69057dd02c
@ -3,17 +3,18 @@ from typing import Annotated, TYPE_CHECKING
|
|||||||
|
|
||||||
import strawberry
|
import strawberry
|
||||||
import strawberry_django
|
import strawberry_django
|
||||||
|
from strawberry_django import BaseFilterLookup
|
||||||
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__ = (
|
||||||
'BaseCircuitTypeFilter',
|
'CircuitTypeFilterMixin',
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@dataclass
|
@dataclass
|
||||||
class BaseCircuitTypeFilter(OrganizationalModelFilter):
|
class CircuitTypeFilterMixin:
|
||||||
color: Annotated['ColorEnum', strawberry.lazy('netbox.graphql.enums')] | None = strawberry_django.filter_field()
|
color: BaseFilterLookup[Annotated['ColorEnum', strawberry.lazy('netbox.graphql.enums')]] | None = (
|
||||||
|
strawberry_django.filter_field()
|
||||||
|
)
|
||||||
|
|||||||
@ -7,12 +7,12 @@ 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 circuits.graphql.filter_mixins import CircuitTypeFilterMixin
|
||||||
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 DistanceFilterMixin, ImageAttachmentFilterMixin
|
from netbox.graphql.filter_mixins import DistanceFilterMixin, ImageAttachmentFilterMixin
|
||||||
from netbox.graphql.filters import ChangeLoggedModelFilter, OrganizationalModelFilter, PrimaryModelFilter
|
from netbox.graphql.filters import ChangeLoggedModelFilter, OrganizationalModelFilter, PrimaryModelFilter
|
||||||
from tenancy.graphql.filter_mixins import ContactFilterMixin, TenancyFilterMixin
|
from tenancy.graphql.filter_mixins import ContactFilterMixin, TenancyFilterMixin
|
||||||
from .filter_mixins import BaseCircuitTypeFilter
|
|
||||||
|
|
||||||
if TYPE_CHECKING:
|
if TYPE_CHECKING:
|
||||||
from core.graphql.filters import ContentTypeFilter
|
from core.graphql.filters import ContentTypeFilter
|
||||||
@ -118,7 +118,7 @@ class CircuitFilter(
|
|||||||
|
|
||||||
|
|
||||||
@strawberry_django.filter_type(models.CircuitType, lookups=True)
|
@strawberry_django.filter_type(models.CircuitType, lookups=True)
|
||||||
class CircuitTypeFilter(BaseCircuitTypeFilter):
|
class CircuitTypeFilter(CircuitTypeFilterMixin, OrganizationalModelFilter):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
||||||
@ -173,7 +173,7 @@ class ProviderNetworkFilter(PrimaryModelFilter):
|
|||||||
|
|
||||||
|
|
||||||
@strawberry_django.filter_type(models.VirtualCircuitType, lookups=True)
|
@strawberry_django.filter_type(models.VirtualCircuitType, lookups=True)
|
||||||
class VirtualCircuitTypeFilter(BaseCircuitTypeFilter):
|
class VirtualCircuitTypeFilter(CircuitTypeFilterMixin, OrganizationalModelFilter):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -7,8 +7,6 @@ from strawberry import ID
|
|||||||
from strawberry_django import BaseFilterLookup, FilterLookup
|
from strawberry_django import BaseFilterLookup, FilterLookup
|
||||||
|
|
||||||
from core.graphql.filters import ContentTypeFilter
|
from core.graphql.filters import ContentTypeFilter
|
||||||
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,12 +17,12 @@ if TYPE_CHECKING:
|
|||||||
|
|
||||||
__all__ = (
|
__all__ = (
|
||||||
'CabledObjectModelFilterMixin',
|
'CabledObjectModelFilterMixin',
|
||||||
'ComponentModelFilter',
|
'ComponentModelFilterMixin',
|
||||||
'ComponentTemplateFilter',
|
'ComponentTemplateFilterMixin',
|
||||||
'InterfaceBaseFilterMixin',
|
'InterfaceBaseFilterMixin',
|
||||||
'ModularComponentModelFilter',
|
'ModularComponentModelFilterMixin',
|
||||||
'ModularComponentTemplateFilter',
|
'ModularComponentTemplateFilterMixin',
|
||||||
'RackBaseFilter',
|
'RackFilterMixin',
|
||||||
'RenderConfigFilterMixin',
|
'RenderConfigFilterMixin',
|
||||||
'ScopedFilterMixin',
|
'ScopedFilterMixin',
|
||||||
)
|
)
|
||||||
@ -39,7 +37,7 @@ class ScopedFilterMixin:
|
|||||||
|
|
||||||
|
|
||||||
@dataclass
|
@dataclass
|
||||||
class ComponentModelFilter(NetBoxModelFilter):
|
class ComponentModelFilterMixin:
|
||||||
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 +46,7 @@ class ComponentModelFilter(NetBoxModelFilter):
|
|||||||
|
|
||||||
|
|
||||||
@dataclass
|
@dataclass
|
||||||
class ModularComponentModelFilter(ComponentModelFilter):
|
class ModularComponentModelFilterMixin(ComponentModelFilterMixin):
|
||||||
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 = (
|
||||||
@ -67,7 +65,7 @@ class CabledObjectModelFilterMixin:
|
|||||||
|
|
||||||
|
|
||||||
@dataclass
|
@dataclass
|
||||||
class ComponentTemplateFilter(ChangeLoggedModelFilter):
|
class ComponentTemplateFilterMixin:
|
||||||
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,7 +76,7 @@ class ComponentTemplateFilter(ChangeLoggedModelFilter):
|
|||||||
|
|
||||||
|
|
||||||
@dataclass
|
@dataclass
|
||||||
class ModularComponentTemplateFilter(ComponentTemplateFilter):
|
class ModularComponentTemplateFilterMixin(ComponentTemplateFilterMixin):
|
||||||
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()
|
||||||
)
|
)
|
||||||
@ -124,7 +122,7 @@ class InterfaceBaseFilterMixin:
|
|||||||
|
|
||||||
|
|
||||||
@dataclass
|
@dataclass
|
||||||
class RackBaseFilter(WeightFilterMixin, PrimaryModelFilter):
|
class RackFilterMixin:
|
||||||
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()
|
||||||
)
|
)
|
||||||
|
|||||||
@ -9,22 +9,21 @@ from strawberry_django import BaseFilterLookup, ComparisonFilterLookup, FilterLo
|
|||||||
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 dcim.graphql.filter_mixins import (
|
||||||
|
ComponentModelFilterMixin, ComponentTemplateFilterMixin, ModularComponentModelFilterMixin,
|
||||||
|
ModularComponentTemplateFilterMixin, RackFilterMixin,
|
||||||
|
)
|
||||||
from extras.graphql.filter_mixins import ConfigContextFilterMixin
|
from extras.graphql.filter_mixins import ConfigContextFilterMixin
|
||||||
from netbox.graphql.filter_mixins import ImageAttachmentFilterMixin, WeightFilterMixin
|
from netbox.graphql.filter_mixins import ImageAttachmentFilterMixin, WeightFilterMixin
|
||||||
from netbox.graphql.filters import (
|
from netbox.graphql.filters import (
|
||||||
ChangeLoggedModelFilter, NestedGroupModelFilter, OrganizationalModelFilter, PrimaryModelFilter,
|
ChangeLoggedModelFilter, NestedGroupModelFilter, OrganizationalModelFilter, PrimaryModelFilter, NetBoxModelFilter,
|
||||||
)
|
)
|
||||||
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,
|
||||||
ComponentModelFilter,
|
|
||||||
ComponentTemplateFilter,
|
|
||||||
InterfaceBaseFilterMixin,
|
InterfaceBaseFilterMixin,
|
||||||
ModularComponentModelFilter,
|
|
||||||
ModularComponentTemplateFilter,
|
|
||||||
RackBaseFilter,
|
|
||||||
RenderConfigFilterMixin,
|
RenderConfigFilterMixin,
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -128,7 +127,7 @@ class CableTerminationFilter(ChangeLoggedModelFilter):
|
|||||||
|
|
||||||
|
|
||||||
@strawberry_django.filter_type(models.ConsolePort, lookups=True)
|
@strawberry_django.filter_type(models.ConsolePort, lookups=True)
|
||||||
class ConsolePortFilter(ModularComponentModelFilter, CabledObjectModelFilterMixin):
|
class ConsolePortFilter(ModularComponentTemplateFilterMixin, CabledObjectModelFilterMixin, ChangeLoggedModelFilter):
|
||||||
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()
|
||||||
)
|
)
|
||||||
@ -138,14 +137,18 @@ class ConsolePortFilter(ModularComponentModelFilter, CabledObjectModelFilterMixi
|
|||||||
|
|
||||||
|
|
||||||
@strawberry_django.filter_type(models.ConsolePortTemplate, lookups=True)
|
@strawberry_django.filter_type(models.ConsolePortTemplate, lookups=True)
|
||||||
class ConsolePortTemplateFilter(ModularComponentTemplateFilter):
|
class ConsolePortTemplateFilter(ModularComponentTemplateFilterMixin, ChangeLoggedModelFilter):
|
||||||
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(ModularComponentModelFilter, CabledObjectModelFilterMixin):
|
class ConsoleServerPortFilter(
|
||||||
|
ModularComponentTemplateFilterMixin,
|
||||||
|
CabledObjectModelFilterMixin,
|
||||||
|
ChangeLoggedModelFilter
|
||||||
|
):
|
||||||
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()
|
||||||
)
|
)
|
||||||
@ -155,7 +158,7 @@ class ConsoleServerPortFilter(ModularComponentModelFilter, CabledObjectModelFilt
|
|||||||
|
|
||||||
|
|
||||||
@strawberry_django.filter_type(models.ConsoleServerPortTemplate, lookups=True)
|
@strawberry_django.filter_type(models.ConsoleServerPortTemplate, lookups=True)
|
||||||
class ConsoleServerPortTemplateFilter(ModularComponentTemplateFilter):
|
class ConsoleServerPortTemplateFilter(ModularComponentTemplateFilterMixin, ChangeLoggedModelFilter):
|
||||||
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()
|
||||||
)
|
)
|
||||||
@ -281,7 +284,7 @@ class DeviceFilter(
|
|||||||
|
|
||||||
|
|
||||||
@strawberry_django.filter_type(models.DeviceBay, lookups=True)
|
@strawberry_django.filter_type(models.DeviceBay, lookups=True)
|
||||||
class DeviceBayFilter(ComponentModelFilter):
|
class DeviceBayFilter(ComponentModelFilterMixin, NetBoxModelFilter):
|
||||||
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()
|
||||||
)
|
)
|
||||||
@ -289,12 +292,12 @@ class DeviceBayFilter(ComponentModelFilter):
|
|||||||
|
|
||||||
|
|
||||||
@strawberry_django.filter_type(models.DeviceBayTemplate, lookups=True)
|
@strawberry_django.filter_type(models.DeviceBayTemplate, lookups=True)
|
||||||
class DeviceBayTemplateFilter(ComponentTemplateFilter):
|
class DeviceBayTemplateFilter(ComponentTemplateFilterMixin, ChangeLoggedModelFilter):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
||||||
@strawberry_django.filter_type(models.InventoryItemTemplate, lookups=True)
|
@strawberry_django.filter_type(models.InventoryItemTemplate, lookups=True)
|
||||||
class InventoryItemTemplateFilter(ComponentTemplateFilter):
|
class InventoryItemTemplateFilter(ComponentTemplateFilterMixin, ChangeLoggedModelFilter):
|
||||||
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()
|
||||||
)
|
)
|
||||||
@ -398,7 +401,7 @@ class DeviceTypeFilter(ImageAttachmentFilterMixin, PrimaryModelFilter, WeightFil
|
|||||||
|
|
||||||
|
|
||||||
@strawberry_django.filter_type(models.FrontPort, lookups=True)
|
@strawberry_django.filter_type(models.FrontPort, lookups=True)
|
||||||
class FrontPortFilter(ModularComponentModelFilter, CabledObjectModelFilterMixin):
|
class FrontPortFilter(ModularComponentModelFilterMixin, CabledObjectModelFilterMixin, NetBoxModelFilter):
|
||||||
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()
|
||||||
)
|
)
|
||||||
@ -415,7 +418,7 @@ class FrontPortFilter(ModularComponentModelFilter, CabledObjectModelFilterMixin)
|
|||||||
|
|
||||||
|
|
||||||
@strawberry_django.filter_type(models.FrontPortTemplate, lookups=True)
|
@strawberry_django.filter_type(models.FrontPortTemplate, lookups=True)
|
||||||
class FrontPortTemplateFilter(ModularComponentTemplateFilter):
|
class FrontPortTemplateFilter(ModularComponentTemplateFilterMixin, ChangeLoggedModelFilter):
|
||||||
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()
|
||||||
)
|
)
|
||||||
@ -459,7 +462,12 @@ class MACAddressFilter(PrimaryModelFilter):
|
|||||||
|
|
||||||
|
|
||||||
@strawberry_django.filter_type(models.Interface, lookups=True)
|
@strawberry_django.filter_type(models.Interface, lookups=True)
|
||||||
class InterfaceFilter(ModularComponentModelFilter, InterfaceBaseFilterMixin, CabledObjectModelFilterMixin):
|
class InterfaceFilter(
|
||||||
|
ModularComponentModelFilterMixin,
|
||||||
|
InterfaceBaseFilterMixin,
|
||||||
|
CabledObjectModelFilterMixin,
|
||||||
|
NetBoxModelFilter
|
||||||
|
):
|
||||||
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()
|
||||||
)
|
)
|
||||||
@ -549,7 +557,7 @@ class InterfaceFilter(ModularComponentModelFilter, InterfaceBaseFilterMixin, Cab
|
|||||||
|
|
||||||
|
|
||||||
@strawberry_django.filter_type(models.InterfaceTemplate, lookups=True)
|
@strawberry_django.filter_type(models.InterfaceTemplate, lookups=True)
|
||||||
class InterfaceTemplateFilter(ModularComponentTemplateFilter):
|
class InterfaceTemplateFilter(ModularComponentTemplateFilterMixin, ChangeLoggedModelFilter):
|
||||||
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()
|
||||||
)
|
)
|
||||||
@ -571,7 +579,7 @@ class InterfaceTemplateFilter(ModularComponentTemplateFilter):
|
|||||||
|
|
||||||
|
|
||||||
@strawberry_django.filter_type(models.InventoryItem, lookups=True)
|
@strawberry_django.filter_type(models.InventoryItem, lookups=True)
|
||||||
class InventoryItemFilter(ComponentModelFilter):
|
class InventoryItemFilter(ComponentModelFilterMixin, NetBoxModelFilter):
|
||||||
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()
|
||||||
)
|
)
|
||||||
@ -675,7 +683,7 @@ class ModuleFilter(PrimaryModelFilter, ConfigContextFilterMixin):
|
|||||||
|
|
||||||
|
|
||||||
@strawberry_django.filter_type(models.ModuleBay, lookups=True)
|
@strawberry_django.filter_type(models.ModuleBay, lookups=True)
|
||||||
class ModuleBayFilter(ModularComponentModelFilter):
|
class ModuleBayFilter(ModularComponentModelFilterMixin, NetBoxModelFilter):
|
||||||
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()
|
||||||
)
|
)
|
||||||
@ -684,7 +692,7 @@ class ModuleBayFilter(ModularComponentModelFilter):
|
|||||||
|
|
||||||
|
|
||||||
@strawberry_django.filter_type(models.ModuleBayTemplate, lookups=True)
|
@strawberry_django.filter_type(models.ModuleBayTemplate, lookups=True)
|
||||||
class ModuleBayTemplateFilter(ModularComponentTemplateFilter):
|
class ModuleBayTemplateFilter(ModularComponentTemplateFilterMixin, ChangeLoggedModelFilter):
|
||||||
position: FilterLookup[str] | None = strawberry_django.filter_field()
|
position: FilterLookup[str] | None = strawberry_django.filter_field()
|
||||||
|
|
||||||
|
|
||||||
@ -792,7 +800,7 @@ class PowerFeedFilter(CabledObjectModelFilterMixin, TenancyFilterMixin, PrimaryM
|
|||||||
|
|
||||||
|
|
||||||
@strawberry_django.filter_type(models.PowerOutlet, lookups=True)
|
@strawberry_django.filter_type(models.PowerOutlet, lookups=True)
|
||||||
class PowerOutletFilter(ModularComponentModelFilter, CabledObjectModelFilterMixin):
|
class PowerOutletFilter(ModularComponentModelFilterMixin, CabledObjectModelFilterMixin, NetBoxModelFilter):
|
||||||
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()
|
||||||
)
|
)
|
||||||
@ -812,7 +820,7 @@ class PowerOutletFilter(ModularComponentModelFilter, CabledObjectModelFilterMixi
|
|||||||
|
|
||||||
|
|
||||||
@strawberry_django.filter_type(models.PowerOutletTemplate, lookups=True)
|
@strawberry_django.filter_type(models.PowerOutletTemplate, lookups=True)
|
||||||
class PowerOutletTemplateFilter(ModularComponentModelFilter):
|
class PowerOutletTemplateFilter(ModularComponentModelFilterMixin, NetBoxModelFilter):
|
||||||
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()
|
||||||
)
|
)
|
||||||
@ -839,7 +847,7 @@ class PowerPanelFilter(ContactFilterMixin, ImageAttachmentFilterMixin, PrimaryMo
|
|||||||
|
|
||||||
|
|
||||||
@strawberry_django.filter_type(models.PowerPort, lookups=True)
|
@strawberry_django.filter_type(models.PowerPort, lookups=True)
|
||||||
class PowerPortFilter(ModularComponentModelFilter, CabledObjectModelFilterMixin):
|
class PowerPortFilter(ModularComponentModelFilterMixin, CabledObjectModelFilterMixin, NetBoxModelFilter):
|
||||||
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()
|
||||||
)
|
)
|
||||||
@ -852,7 +860,7 @@ class PowerPortFilter(ModularComponentModelFilter, CabledObjectModelFilterMixin)
|
|||||||
|
|
||||||
|
|
||||||
@strawberry_django.filter_type(models.PowerPortTemplate, lookups=True)
|
@strawberry_django.filter_type(models.PowerPortTemplate, lookups=True)
|
||||||
class PowerPortTemplateFilter(ModularComponentTemplateFilter):
|
class PowerPortTemplateFilter(ModularComponentTemplateFilterMixin, ChangeLoggedModelFilter):
|
||||||
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()
|
||||||
)
|
)
|
||||||
@ -865,7 +873,7 @@ class PowerPortTemplateFilter(ModularComponentTemplateFilter):
|
|||||||
|
|
||||||
|
|
||||||
@strawberry_django.filter_type(models.RackType, lookups=True)
|
@strawberry_django.filter_type(models.RackType, lookups=True)
|
||||||
class RackTypeFilter(RackBaseFilter):
|
class RackTypeFilter(RackFilterMixin, WeightFilterMixin, PrimaryModelFilter):
|
||||||
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()
|
||||||
)
|
)
|
||||||
@ -880,7 +888,13 @@ class RackTypeFilter(RackBaseFilter):
|
|||||||
|
|
||||||
|
|
||||||
@strawberry_django.filter_type(models.Rack, lookups=True)
|
@strawberry_django.filter_type(models.Rack, lookups=True)
|
||||||
class RackFilter(ContactFilterMixin, ImageAttachmentFilterMixin, TenancyFilterMixin, RackBaseFilter):
|
class RackFilter(
|
||||||
|
ContactFilterMixin,
|
||||||
|
ImageAttachmentFilterMixin,
|
||||||
|
TenancyFilterMixin,
|
||||||
|
RackFilterMixin,
|
||||||
|
PrimaryModelFilter
|
||||||
|
):
|
||||||
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()
|
||||||
)
|
)
|
||||||
@ -936,7 +950,7 @@ class RackRoleFilter(OrganizationalModelFilter):
|
|||||||
|
|
||||||
|
|
||||||
@strawberry_django.filter_type(models.RearPort, lookups=True)
|
@strawberry_django.filter_type(models.RearPort, lookups=True)
|
||||||
class RearPortFilter(ModularComponentModelFilter, CabledObjectModelFilterMixin):
|
class RearPortFilter(ModularComponentModelFilterMixin, CabledObjectModelFilterMixin, NetBoxModelFilter):
|
||||||
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()
|
||||||
)
|
)
|
||||||
@ -949,7 +963,7 @@ class RearPortFilter(ModularComponentModelFilter, CabledObjectModelFilterMixin):
|
|||||||
|
|
||||||
|
|
||||||
@strawberry_django.filter_type(models.RearPortTemplate, lookups=True)
|
@strawberry_django.filter_type(models.RearPortTemplate, lookups=True)
|
||||||
class RearPortTemplateFilter(ModularComponentTemplateFilter):
|
class RearPortTemplateFilter(ModularComponentTemplateFilterMixin, ChangeLoggedModelFilter):
|
||||||
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()
|
||||||
)
|
)
|
||||||
|
|||||||
@ -3,7 +3,6 @@ from typing import Annotated, TYPE_CHECKING
|
|||||||
|
|
||||||
import strawberry
|
import strawberry
|
||||||
import strawberry_django
|
import strawberry_django
|
||||||
from strawberry_django import FilterLookup
|
|
||||||
|
|
||||||
if TYPE_CHECKING:
|
if TYPE_CHECKING:
|
||||||
from netbox.graphql.filter_lookups import JSONFilter
|
from netbox.graphql.filter_lookups import JSONFilter
|
||||||
@ -14,7 +13,6 @@ __all__ = (
|
|||||||
'JournalEntriesFilterMixin',
|
'JournalEntriesFilterMixin',
|
||||||
'TagsFilterMixin',
|
'TagsFilterMixin',
|
||||||
'ConfigContextFilterMixin',
|
'ConfigContextFilterMixin',
|
||||||
'TagBaseFilter',
|
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@ -42,9 +40,3 @@ class ConfigContextFilterMixin:
|
|||||||
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
|
|
||||||
class TagBaseFilter:
|
|
||||||
name: FilterLookup[str] | None = strawberry_django.filter_field()
|
|
||||||
slug: FilterLookup[str] | None = strawberry_django.filter_field()
|
|
||||||
|
|||||||
@ -6,7 +6,7 @@ from strawberry.scalars import ID
|
|||||||
from strawberry_django import BaseFilterLookup, FilterLookup
|
from strawberry_django import BaseFilterLookup, FilterLookup
|
||||||
|
|
||||||
from extras import models
|
from extras import models
|
||||||
from extras.graphql.filter_mixins import TagBaseFilter, CustomFieldsFilterMixin, TagsFilterMixin
|
from extras.graphql.filter_mixins import CustomFieldsFilterMixin, TagsFilterMixin
|
||||||
from netbox.graphql.filter_mixins import SyncedDataFilterMixin
|
from netbox.graphql.filter_mixins import SyncedDataFilterMixin
|
||||||
from netbox.graphql.filters import ChangeLoggedModelFilter, PrimaryModelFilter
|
from netbox.graphql.filters import ChangeLoggedModelFilter, PrimaryModelFilter
|
||||||
|
|
||||||
@ -295,7 +295,9 @@ class TableConfigFilter(ChangeLoggedModelFilter):
|
|||||||
|
|
||||||
|
|
||||||
@strawberry_django.filter_type(models.Tag, lookups=True)
|
@strawberry_django.filter_type(models.Tag, lookups=True)
|
||||||
class TagFilter(ChangeLoggedModelFilter, TagBaseFilter):
|
class TagFilter(ChangeLoggedModelFilter):
|
||||||
|
name: FilterLookup[str] | None = strawberry_django.filter_field()
|
||||||
|
slug: FilterLookup[str] | None = strawberry_django.filter_field()
|
||||||
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()
|
||||||
)
|
)
|
||||||
|
|||||||
@ -9,12 +9,12 @@ if TYPE_CHECKING:
|
|||||||
from .enums import *
|
from .enums import *
|
||||||
|
|
||||||
__all__ = (
|
__all__ = (
|
||||||
'ServiceBaseFilterMixin',
|
'ServiceFilterMixin',
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@dataclass
|
@dataclass
|
||||||
class ServiceBaseFilterMixin:
|
class ServiceFilterMixin:
|
||||||
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()
|
||||||
)
|
)
|
||||||
|
|||||||
@ -12,7 +12,7 @@ from strawberry_django import BaseFilterLookup, FilterLookup, DateFilterLookup
|
|||||||
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 ServiceFilterMixin
|
||||||
from netbox.graphql.filters import (
|
from netbox.graphql.filters import (
|
||||||
ChangeLoggedModelFilter, NetBoxModelFilter, OrganizationalModelFilter, PrimaryModelFilter,
|
ChangeLoggedModelFilter, NetBoxModelFilter, OrganizationalModelFilter, PrimaryModelFilter,
|
||||||
)
|
)
|
||||||
@ -340,7 +340,7 @@ class RouteTargetFilter(TenancyFilterMixin, PrimaryModelFilter):
|
|||||||
|
|
||||||
|
|
||||||
@strawberry_django.filter_type(models.Service, lookups=True)
|
@strawberry_django.filter_type(models.Service, lookups=True)
|
||||||
class ServiceFilter(ContactFilterMixin, ServiceBaseFilterMixin, PrimaryModelFilter):
|
class ServiceFilter(ContactFilterMixin, ServiceFilterMixin, 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()
|
||||||
@ -352,7 +352,7 @@ class ServiceFilter(ContactFilterMixin, ServiceBaseFilterMixin, PrimaryModelFilt
|
|||||||
|
|
||||||
|
|
||||||
@strawberry_django.filter_type(models.ServiceTemplate, lookups=True)
|
@strawberry_django.filter_type(models.ServiceTemplate, lookups=True)
|
||||||
class ServiceTemplateFilter(ServiceBaseFilterMixin, PrimaryModelFilter):
|
class ServiceTemplateFilter(ServiceFilterMixin, PrimaryModelFilter):
|
||||||
name: FilterLookup[str] | None = strawberry_django.filter_field()
|
name: FilterLookup[str] | None = strawberry_django.filter_field()
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -3,21 +3,19 @@ from typing import Annotated, TYPE_CHECKING
|
|||||||
|
|
||||||
import strawberry
|
import strawberry
|
||||||
import strawberry_django
|
import strawberry_django
|
||||||
from strawberry import ID
|
from strawberry.scalars import ID
|
||||||
from strawberry_django import FilterLookup
|
from strawberry_django import FilterLookup
|
||||||
|
|
||||||
from netbox.graphql.filters import NetBoxModelFilter
|
|
||||||
|
|
||||||
if TYPE_CHECKING:
|
if TYPE_CHECKING:
|
||||||
from .filters import VirtualMachineFilter
|
from .filters import VirtualMachineFilter
|
||||||
|
|
||||||
__all__ = (
|
__all__ = (
|
||||||
'VMComponentFilter',
|
'VMComponentFilterMixin',
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@dataclass
|
@dataclass
|
||||||
class VMComponentFilter(NetBoxModelFilter):
|
class VMComponentFilterMixin:
|
||||||
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()
|
||||||
)
|
)
|
||||||
|
|||||||
@ -8,10 +8,10 @@ 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 ImageAttachmentFilterMixin
|
from netbox.graphql.filter_mixins import ImageAttachmentFilterMixin
|
||||||
from netbox.graphql.filters import OrganizationalModelFilter, PrimaryModelFilter
|
from netbox.graphql.filters import NetBoxModelFilter, OrganizationalModelFilter, PrimaryModelFilter
|
||||||
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 VMComponentFilter
|
from virtualization.graphql.filter_mixins import VMComponentFilterMixin
|
||||||
|
|
||||||
if TYPE_CHECKING:
|
if TYPE_CHECKING:
|
||||||
from .enums import *
|
from .enums import *
|
||||||
@ -135,7 +135,7 @@ class VirtualMachineFilter(
|
|||||||
|
|
||||||
|
|
||||||
@strawberry_django.filter_type(models.VMInterface, lookups=True)
|
@strawberry_django.filter_type(models.VMInterface, lookups=True)
|
||||||
class VMInterfaceFilter(VMComponentFilter, InterfaceBaseFilterMixin):
|
class VMInterfaceFilter(InterfaceBaseFilterMixin, VMComponentFilterMixin, NetBoxModelFilter):
|
||||||
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()
|
||||||
)
|
)
|
||||||
@ -160,7 +160,7 @@ class VMInterfaceFilter(VMComponentFilter, InterfaceBaseFilterMixin):
|
|||||||
|
|
||||||
|
|
||||||
@strawberry_django.filter_type(models.VirtualDisk, lookups=True)
|
@strawberry_django.filter_type(models.VirtualDisk, lookups=True)
|
||||||
class VirtualDiskFilter(VMComponentFilter):
|
class VirtualDiskFilter(VMComponentFilterMixin, NetBoxModelFilter):
|
||||||
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()
|
||||||
)
|
)
|
||||||
|
|||||||
@ -9,12 +9,12 @@ if TYPE_CHECKING:
|
|||||||
from .enums import *
|
from .enums import *
|
||||||
|
|
||||||
__all__ = (
|
__all__ = (
|
||||||
'WirelessAuthenticationBaseFilterMixin',
|
'WirelessAuthenticationFilterMixin',
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@dataclass
|
@dataclass
|
||||||
class WirelessAuthenticationBaseFilterMixin:
|
class WirelessAuthenticationFilterMixin:
|
||||||
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()
|
||||||
)
|
)
|
||||||
|
|||||||
@ -10,7 +10,7 @@ from netbox.graphql.filter_mixins import DistanceFilterMixin
|
|||||||
from netbox.graphql.filters import PrimaryModelFilter, NestedGroupModelFilter
|
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 WirelessAuthenticationFilterMixin
|
||||||
|
|
||||||
if TYPE_CHECKING:
|
if TYPE_CHECKING:
|
||||||
from dcim.graphql.filters import InterfaceFilter
|
from dcim.graphql.filters import InterfaceFilter
|
||||||
@ -31,7 +31,7 @@ class WirelessLANGroupFilter(NestedGroupModelFilter):
|
|||||||
|
|
||||||
@strawberry_django.filter_type(models.WirelessLAN, lookups=True)
|
@strawberry_django.filter_type(models.WirelessLAN, lookups=True)
|
||||||
class WirelessLANFilter(
|
class WirelessLANFilter(
|
||||||
WirelessAuthenticationBaseFilterMixin,
|
WirelessAuthenticationFilterMixin,
|
||||||
ScopedFilterMixin,
|
ScopedFilterMixin,
|
||||||
TenancyFilterMixin,
|
TenancyFilterMixin,
|
||||||
PrimaryModelFilter
|
PrimaryModelFilter
|
||||||
@ -50,7 +50,7 @@ class WirelessLANFilter(
|
|||||||
|
|
||||||
@strawberry_django.filter_type(models.WirelessLink, lookups=True)
|
@strawberry_django.filter_type(models.WirelessLink, lookups=True)
|
||||||
class WirelessLinkFilter(
|
class WirelessLinkFilter(
|
||||||
WirelessAuthenticationBaseFilterMixin,
|
WirelessAuthenticationFilterMixin,
|
||||||
DistanceFilterMixin,
|
DistanceFilterMixin,
|
||||||
TenancyFilterMixin,
|
TenancyFilterMixin,
|
||||||
PrimaryModelFilter
|
PrimaryModelFilter
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user