Merge branch 'netbox-community:main' into main

This commit is contained in:
Omripresent 2025-05-16 14:40:35 -04:00 committed by GitHub
commit be07f222f6
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
14 changed files with 223 additions and 225 deletions

View File

@ -41,7 +41,7 @@ __all__ = (
) )
@strawberry_django.filter(models.CircuitTermination, lookups=True) @strawberry_django.filter_type(models.CircuitTermination, lookups=True)
class CircuitTerminationFilter( class CircuitTerminationFilter(
BaseObjectTypeFilterMixin, BaseObjectTypeFilterMixin,
CustomFieldsFilterMixin, CustomFieldsFilterMixin,
@ -87,7 +87,7 @@ class CircuitTerminationFilter(
) )
@strawberry_django.filter(models.Circuit, lookups=True) @strawberry_django.filter_type(models.Circuit, lookups=True)
class CircuitFilter( class CircuitFilter(
ContactFilterMixin, ContactFilterMixin,
ImageAttachmentFilterMixin, ImageAttachmentFilterMixin,
@ -121,17 +121,17 @@ class CircuitFilter(
) )
@strawberry_django.filter(models.CircuitType, lookups=True) @strawberry_django.filter_type(models.CircuitType, lookups=True)
class CircuitTypeFilter(BaseCircuitTypeFilterMixin): class CircuitTypeFilter(BaseCircuitTypeFilterMixin):
pass pass
@strawberry_django.filter(models.CircuitGroup, lookups=True) @strawberry_django.filter_type(models.CircuitGroup, lookups=True)
class CircuitGroupFilter(TenancyFilterMixin, OrganizationalModelFilterMixin): class CircuitGroupFilter(TenancyFilterMixin, OrganizationalModelFilterMixin):
pass pass
@strawberry_django.filter(models.CircuitGroupAssignment, lookups=True) @strawberry_django.filter_type(models.CircuitGroupAssignment, lookups=True)
class CircuitGroupAssignmentFilter( class CircuitGroupAssignmentFilter(
BaseObjectTypeFilterMixin, CustomFieldsFilterMixin, TagsFilterMixin, ChangeLogFilterMixin BaseObjectTypeFilterMixin, CustomFieldsFilterMixin, TagsFilterMixin, ChangeLogFilterMixin
): ):
@ -148,7 +148,7 @@ class CircuitGroupAssignmentFilter(
) )
@strawberry_django.filter(models.Provider, lookups=True) @strawberry_django.filter_type(models.Provider, lookups=True)
class ProviderFilter(ContactFilterMixin, PrimaryModelFilterMixin): class ProviderFilter(ContactFilterMixin, PrimaryModelFilterMixin):
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()
@ -158,7 +158,7 @@ class ProviderFilter(ContactFilterMixin, PrimaryModelFilterMixin):
) )
@strawberry_django.filter(models.ProviderAccount, lookups=True) @strawberry_django.filter_type(models.ProviderAccount, lookups=True)
class ProviderAccountFilter(ContactFilterMixin, PrimaryModelFilterMixin): class ProviderAccountFilter(ContactFilterMixin, PrimaryModelFilterMixin):
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()
@ -168,7 +168,7 @@ class ProviderAccountFilter(ContactFilterMixin, PrimaryModelFilterMixin):
name: FilterLookup[str] | None = strawberry_django.filter_field() name: FilterLookup[str] | None = strawberry_django.filter_field()
@strawberry_django.filter(models.ProviderNetwork, lookups=True) @strawberry_django.filter_type(models.ProviderNetwork, lookups=True)
class ProviderNetworkFilter(PrimaryModelFilterMixin): class ProviderNetworkFilter(PrimaryModelFilterMixin):
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 = (
@ -178,12 +178,12 @@ class ProviderNetworkFilter(PrimaryModelFilterMixin):
service_id: FilterLookup[str] | None = strawberry_django.filter_field() service_id: FilterLookup[str] | None = strawberry_django.filter_field()
@strawberry_django.filter(models.VirtualCircuitType, lookups=True) @strawberry_django.filter_type(models.VirtualCircuitType, lookups=True)
class VirtualCircuitTypeFilter(BaseCircuitTypeFilterMixin): class VirtualCircuitTypeFilter(BaseCircuitTypeFilterMixin):
pass pass
@strawberry_django.filter(models.VirtualCircuit, lookups=True) @strawberry_django.filter_type(models.VirtualCircuit, lookups=True)
class VirtualCircuitFilter(TenancyFilterMixin, PrimaryModelFilterMixin): class VirtualCircuitFilter(TenancyFilterMixin, PrimaryModelFilterMixin):
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 = (
@ -206,7 +206,7 @@ class VirtualCircuitFilter(TenancyFilterMixin, PrimaryModelFilterMixin):
) )
@strawberry_django.filter(models.VirtualCircuitTermination, lookups=True) @strawberry_django.filter_type(models.VirtualCircuitTermination, lookups=True)
class VirtualCircuitTerminationFilter( class VirtualCircuitTerminationFilter(
BaseObjectTypeFilterMixin, CustomFieldsFilterMixin, TagsFilterMixin, ChangeLogFilterMixin BaseObjectTypeFilterMixin, CustomFieldsFilterMixin, TagsFilterMixin, ChangeLogFilterMixin
): ):

View File

@ -54,9 +54,8 @@ class VirtualCircuitTable(TenancyColumnsMixin, ContactsColumnMixin, NetBoxTable)
linkify=True, linkify=True,
verbose_name=_('Account') verbose_name=_('Account')
) )
type = tables.Column( type = columns.ColoredLabelColumn(
verbose_name=_('Type'), verbose_name=_('Type'),
linkify=True
) )
status = columns.ChoiceFieldColumn() status = columns.ChoiceFieldColumn()
termination_count = columns.LinkedCountColumn( termination_count = columns.LinkedCountColumn(

View File

@ -23,7 +23,7 @@ __all__ = (
) )
@strawberry_django.filter(models.DataFile, lookups=True) @strawberry_django.filter_type(models.DataFile, lookups=True)
class DataFileFilter(BaseFilterMixin): class DataFileFilter(BaseFilterMixin):
id: ID | None = strawberry_django.filter_field() id: ID | None = strawberry_django.filter_field()
created: DatetimeFilterLookup[datetime] | None = strawberry_django.filter_field() created: DatetimeFilterLookup[datetime] | None = strawberry_django.filter_field()
@ -39,7 +39,7 @@ class DataFileFilter(BaseFilterMixin):
hash: FilterLookup[str] | None = strawberry_django.filter_field() hash: FilterLookup[str] | None = strawberry_django.filter_field()
@strawberry_django.filter(models.DataSource, lookups=True) @strawberry_django.filter_type(models.DataSource, lookups=True)
class DataSourceFilter(PrimaryModelFilterMixin): class DataSourceFilter(PrimaryModelFilterMixin):
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()
@ -56,7 +56,7 @@ class DataSourceFilter(PrimaryModelFilterMixin):
) )
@strawberry_django.filter(models.ObjectChange, lookups=True) @strawberry_django.filter_type(models.ObjectChange, lookups=True)
class ObjectChangeFilter(BaseFilterMixin): class ObjectChangeFilter(BaseFilterMixin):
id: ID | None = strawberry_django.filter_field() id: ID | None = strawberry_django.filter_field()
time: DatetimeFilterLookup[datetime] | None = strawberry_django.filter_field() time: DatetimeFilterLookup[datetime] | None = strawberry_django.filter_field()
@ -82,7 +82,7 @@ class ObjectChangeFilter(BaseFilterMixin):
) )
@strawberry_django.filter(DjangoContentType, lookups=True) @strawberry_django.filter_type(DjangoContentType, lookups=True)
class ContentTypeFilter(BaseFilterMixin): class ContentTypeFilter(BaseFilterMixin):
id: ID | None = strawberry_django.filter_field() id: ID | None = strawberry_django.filter_field()
app_label: FilterLookup[str] | None = strawberry_django.filter_field() app_label: FilterLookup[str] | None = strawberry_django.filter_field()

View File

@ -90,7 +90,7 @@ __all__ = (
) )
@strawberry_django.filter(models.Cable, lookups=True) @strawberry_django.filter_type(models.Cable, lookups=True)
class CableFilter(PrimaryModelFilterMixin, TenancyFilterMixin): class CableFilter(PrimaryModelFilterMixin, TenancyFilterMixin):
type: Annotated['CableTypeEnum', strawberry.lazy('dcim.graphql.enums')] | None = strawberry_django.filter_field() type: Annotated['CableTypeEnum', strawberry.lazy('dcim.graphql.enums')] | None = strawberry_django.filter_field()
status: Annotated['LinkStatusEnum', strawberry.lazy('dcim.graphql.enums')] | None = strawberry_django.filter_field() status: Annotated['LinkStatusEnum', strawberry.lazy('dcim.graphql.enums')] | None = strawberry_django.filter_field()
@ -107,7 +107,7 @@ class CableFilter(PrimaryModelFilterMixin, TenancyFilterMixin):
) )
@strawberry_django.filter(models.CableTermination, lookups=True) @strawberry_django.filter_type(models.CableTermination, lookups=True)
class CableTerminationFilter(ChangeLogFilterMixin): class CableTerminationFilter(ChangeLogFilterMixin):
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()
@ -120,7 +120,7 @@ class CableTerminationFilter(ChangeLogFilterMixin):
termination_id: ID | None = strawberry_django.filter_field() termination_id: ID | None = strawberry_django.filter_field()
@strawberry_django.filter(models.ConsolePort, lookups=True) @strawberry_django.filter_type(models.ConsolePort, lookups=True)
class ConsolePortFilter(ModularComponentModelFilterMixin, CabledObjectModelFilterMixin): class ConsolePortFilter(ModularComponentModelFilterMixin, CabledObjectModelFilterMixin):
type: Annotated['ConsolePortTypeEnum', strawberry.lazy('dcim.graphql.enums')] | None = ( type: Annotated['ConsolePortTypeEnum', strawberry.lazy('dcim.graphql.enums')] | None = (
strawberry_django.filter_field() strawberry_django.filter_field()
@ -130,14 +130,14 @@ class ConsolePortFilter(ModularComponentModelFilterMixin, CabledObjectModelFilte
) )
@strawberry_django.filter(models.ConsolePortTemplate, lookups=True) @strawberry_django.filter_type(models.ConsolePortTemplate, lookups=True)
class ConsolePortTemplateFilter(ModularComponentTemplateFilterMixin): class ConsolePortTemplateFilter(ModularComponentTemplateFilterMixin):
type: Annotated['ConsolePortTypeEnum', strawberry.lazy('dcim.graphql.enums')] | None = ( type: Annotated['ConsolePortTypeEnum', strawberry.lazy('dcim.graphql.enums')] | None = (
strawberry_django.filter_field() strawberry_django.filter_field()
) )
@strawberry_django.filter(models.ConsoleServerPort, lookups=True) @strawberry_django.filter_type(models.ConsoleServerPort, lookups=True)
class ConsoleServerPortFilter(ModularComponentModelFilterMixin, CabledObjectModelFilterMixin): class ConsoleServerPortFilter(ModularComponentModelFilterMixin, CabledObjectModelFilterMixin):
type: Annotated['ConsolePortTypeEnum', strawberry.lazy('dcim.graphql.enums')] | None = ( type: Annotated['ConsolePortTypeEnum', strawberry.lazy('dcim.graphql.enums')] | None = (
strawberry_django.filter_field() strawberry_django.filter_field()
@ -147,14 +147,14 @@ class ConsoleServerPortFilter(ModularComponentModelFilterMixin, CabledObjectMode
) )
@strawberry_django.filter(models.ConsoleServerPortTemplate, lookups=True) @strawberry_django.filter_type(models.ConsoleServerPortTemplate, lookups=True)
class ConsoleServerPortTemplateFilter(ModularComponentTemplateFilterMixin): class ConsoleServerPortTemplateFilter(ModularComponentTemplateFilterMixin):
type: Annotated['ConsolePortTypeEnum', strawberry.lazy('dcim.graphql.enums')] | None = ( type: Annotated['ConsolePortTypeEnum', strawberry.lazy('dcim.graphql.enums')] | None = (
strawberry_django.filter_field() strawberry_django.filter_field()
) )
@strawberry_django.filter(models.Device, lookups=True) @strawberry_django.filter_type(models.Device, lookups=True)
class DeviceFilter( class DeviceFilter(
ContactFilterMixin, ContactFilterMixin,
TenancyFilterMixin, TenancyFilterMixin,
@ -271,7 +271,7 @@ class DeviceFilter(
inventory_item_count: FilterLookup[int] | None = strawberry_django.filter_field() inventory_item_count: FilterLookup[int] | None = strawberry_django.filter_field()
@strawberry_django.filter(models.DeviceBay, lookups=True) @strawberry_django.filter_type(models.DeviceBay, lookups=True)
class DeviceBayFilter(ComponentModelFilterMixin): class DeviceBayFilter(ComponentModelFilterMixin):
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()
@ -279,12 +279,12 @@ class DeviceBayFilter(ComponentModelFilterMixin):
installed_device_id: ID | None = strawberry_django.filter_field() installed_device_id: ID | None = strawberry_django.filter_field()
@strawberry_django.filter(models.DeviceBayTemplate, lookups=True) @strawberry_django.filter_type(models.DeviceBayTemplate, lookups=True)
class DeviceBayTemplateFilter(ComponentTemplateFilterMixin): class DeviceBayTemplateFilter(ComponentTemplateFilterMixin):
pass pass
@strawberry_django.filter(models.InventoryItemTemplate, lookups=True) @strawberry_django.filter_type(models.InventoryItemTemplate, lookups=True)
class InventoryItemTemplateFilter(ComponentTemplateFilterMixin): class InventoryItemTemplateFilter(ComponentTemplateFilterMixin):
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()
@ -304,13 +304,13 @@ class InventoryItemTemplateFilter(ComponentTemplateFilterMixin):
part_id: FilterLookup[str] | None = strawberry_django.filter_field() part_id: FilterLookup[str] | None = strawberry_django.filter_field()
@strawberry_django.filter(models.DeviceRole, lookups=True) @strawberry_django.filter_type(models.DeviceRole, lookups=True)
class DeviceRoleFilter(OrganizationalModelFilterMixin, RenderConfigFilterMixin): class DeviceRoleFilter(OrganizationalModelFilterMixin, RenderConfigFilterMixin):
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()
vm_role: FilterLookup[bool] | None = strawberry_django.filter_field() vm_role: FilterLookup[bool] | None = strawberry_django.filter_field()
@strawberry_django.filter(models.DeviceType, lookups=True) @strawberry_django.filter_type(models.DeviceType, lookups=True)
class DeviceTypeFilter(ImageAttachmentFilterMixin, PrimaryModelFilterMixin, WeightFilterMixin): class DeviceTypeFilter(ImageAttachmentFilterMixin, PrimaryModelFilterMixin, 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()
@ -382,7 +382,7 @@ class DeviceTypeFilter(ImageAttachmentFilterMixin, PrimaryModelFilterMixin, Weig
inventory_item_template_count: FilterLookup[int] | None = strawberry_django.filter_field() inventory_item_template_count: FilterLookup[int] | None = strawberry_django.filter_field()
@strawberry_django.filter(models.FrontPort, lookups=True) @strawberry_django.filter_type(models.FrontPort, lookups=True)
class FrontPortFilter(ModularComponentModelFilterMixin, CabledObjectModelFilterMixin): class FrontPortFilter(ModularComponentModelFilterMixin, CabledObjectModelFilterMixin):
type: Annotated['PortTypeEnum', strawberry.lazy('dcim.graphql.enums')] | None = strawberry_django.filter_field() type: Annotated['PortTypeEnum', strawberry.lazy('dcim.graphql.enums')] | None = strawberry_django.filter_field()
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()
@ -395,7 +395,7 @@ class FrontPortFilter(ModularComponentModelFilterMixin, CabledObjectModelFilterM
) )
@strawberry_django.filter(models.FrontPortTemplate, lookups=True) @strawberry_django.filter_type(models.FrontPortTemplate, lookups=True)
class FrontPortTemplateFilter(ModularComponentTemplateFilterMixin): class FrontPortTemplateFilter(ModularComponentTemplateFilterMixin):
type: Annotated['PortTypeEnum', strawberry.lazy('dcim.graphql.enums')] | None = strawberry_django.filter_field() type: Annotated['PortTypeEnum', strawberry.lazy('dcim.graphql.enums')] | None = strawberry_django.filter_field()
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()
@ -408,7 +408,7 @@ class FrontPortTemplateFilter(ModularComponentTemplateFilterMixin):
) )
@strawberry_django.filter(models.MACAddress, lookups=True) @strawberry_django.filter_type(models.MACAddress, lookups=True)
class MACAddressFilter(PrimaryModelFilterMixin): class MACAddressFilter(PrimaryModelFilterMixin):
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 = (
@ -417,7 +417,7 @@ class MACAddressFilter(PrimaryModelFilterMixin):
assigned_object_id: ID | None = strawberry_django.filter_field() assigned_object_id: ID | None = strawberry_django.filter_field()
@strawberry_django.filter(models.Interface, lookups=True) @strawberry_django.filter_type(models.Interface, lookups=True)
class InterfaceFilter(ModularComponentModelFilterMixin, InterfaceBaseFilterMixin, CabledObjectModelFilterMixin): class InterfaceFilter(ModularComponentModelFilterMixin, 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()
@ -486,7 +486,7 @@ class InterfaceFilter(ModularComponentModelFilterMixin, InterfaceBaseFilterMixin
) )
@strawberry_django.filter(models.InterfaceTemplate, lookups=True) @strawberry_django.filter_type(models.InterfaceTemplate, lookups=True)
class InterfaceTemplateFilter(ModularComponentTemplateFilterMixin): class InterfaceTemplateFilter(ModularComponentTemplateFilterMixin):
type: Annotated['InterfaceTypeEnum', strawberry.lazy('dcim.graphql.enums')] | None = ( type: Annotated['InterfaceTypeEnum', strawberry.lazy('dcim.graphql.enums')] | None = (
strawberry_django.filter_field() strawberry_django.filter_field()
@ -508,7 +508,7 @@ class InterfaceTemplateFilter(ModularComponentTemplateFilterMixin):
) )
@strawberry_django.filter(models.InventoryItem, lookups=True) @strawberry_django.filter_type(models.InventoryItem, lookups=True)
class InventoryItemFilter(ComponentModelFilterMixin): class InventoryItemFilter(ComponentModelFilterMixin):
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()
@ -535,12 +535,12 @@ class InventoryItemFilter(ComponentModelFilterMixin):
discovered: FilterLookup[bool] | None = strawberry_django.filter_field() discovered: FilterLookup[bool] | None = strawberry_django.filter_field()
@strawberry_django.filter(models.InventoryItemRole, lookups=True) @strawberry_django.filter_type(models.InventoryItemRole, lookups=True)
class InventoryItemRoleFilter(OrganizationalModelFilterMixin): class InventoryItemRoleFilter(OrganizationalModelFilterMixin):
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()
@strawberry_django.filter(models.Location, lookups=True) @strawberry_django.filter_type(models.Location, lookups=True)
class LocationFilter(ContactFilterMixin, ImageAttachmentFilterMixin, TenancyFilterMixin, NestedGroupModelFilterMixin): class LocationFilter(ContactFilterMixin, ImageAttachmentFilterMixin, TenancyFilterMixin, NestedGroupModelFilterMixin):
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()
@ -556,12 +556,12 @@ class LocationFilter(ContactFilterMixin, ImageAttachmentFilterMixin, TenancyFilt
) )
@strawberry_django.filter(models.Manufacturer, lookups=True) @strawberry_django.filter_type(models.Manufacturer, lookups=True)
class ManufacturerFilter(ContactFilterMixin, OrganizationalModelFilterMixin): class ManufacturerFilter(ContactFilterMixin, OrganizationalModelFilterMixin):
pass pass
@strawberry_django.filter(models.Module, lookups=True) @strawberry_django.filter_type(models.Module, lookups=True)
class ModuleFilter(PrimaryModelFilterMixin, ConfigContextFilterMixin): class ModuleFilter(PrimaryModelFilterMixin, 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()
@ -610,7 +610,7 @@ class ModuleFilter(PrimaryModelFilterMixin, ConfigContextFilterMixin):
) )
@strawberry_django.filter(models.ModuleBay, lookups=True) @strawberry_django.filter_type(models.ModuleBay, lookups=True)
class ModuleBayFilter(ModularComponentModelFilterMixin): class ModuleBayFilter(ModularComponentModelFilterMixin):
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()
@ -619,17 +619,17 @@ class ModuleBayFilter(ModularComponentModelFilterMixin):
position: FilterLookup[str] | None = strawberry_django.filter_field() position: FilterLookup[str] | None = strawberry_django.filter_field()
@strawberry_django.filter(models.ModuleBayTemplate, lookups=True) @strawberry_django.filter_type(models.ModuleBayTemplate, lookups=True)
class ModuleBayTemplateFilter(ModularComponentTemplateFilterMixin): class ModuleBayTemplateFilter(ModularComponentTemplateFilterMixin):
position: FilterLookup[str] | None = strawberry_django.filter_field() position: FilterLookup[str] | None = strawberry_django.filter_field()
@strawberry_django.filter(models.ModuleTypeProfile, lookups=True) @strawberry_django.filter_type(models.ModuleTypeProfile, lookups=True)
class ModuleTypeProfileFilter(PrimaryModelFilterMixin): class ModuleTypeProfileFilter(PrimaryModelFilterMixin):
name: FilterLookup[str] | None = strawberry_django.filter_field() name: FilterLookup[str] | None = strawberry_django.filter_field()
@strawberry_django.filter(models.ModuleType, lookups=True) @strawberry_django.filter_type(models.ModuleType, lookups=True)
class ModuleTypeFilter(ImageAttachmentFilterMixin, PrimaryModelFilterMixin, WeightFilterMixin): class ModuleTypeFilter(ImageAttachmentFilterMixin, PrimaryModelFilterMixin, 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()
@ -676,7 +676,7 @@ class ModuleTypeFilter(ImageAttachmentFilterMixin, PrimaryModelFilterMixin, Weig
) = strawberry_django.filter_field() ) = strawberry_django.filter_field()
@strawberry_django.filter(models.Platform, lookups=True) @strawberry_django.filter_type(models.Platform, lookups=True)
class PlatformFilter(OrganizationalModelFilterMixin): class PlatformFilter(OrganizationalModelFilterMixin):
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()
@ -688,7 +688,7 @@ class PlatformFilter(OrganizationalModelFilterMixin):
config_template_id: ID | None = strawberry_django.filter_field() config_template_id: ID | None = strawberry_django.filter_field()
@strawberry_django.filter(models.PowerFeed, lookups=True) @strawberry_django.filter_type(models.PowerFeed, lookups=True)
class PowerFeedFilter(CabledObjectModelFilterMixin, TenancyFilterMixin, PrimaryModelFilterMixin): class PowerFeedFilter(CabledObjectModelFilterMixin, TenancyFilterMixin, PrimaryModelFilterMixin):
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()
@ -723,7 +723,7 @@ class PowerFeedFilter(CabledObjectModelFilterMixin, TenancyFilterMixin, PrimaryM
) )
@strawberry_django.filter(models.PowerOutlet, lookups=True) @strawberry_django.filter_type(models.PowerOutlet, lookups=True)
class PowerOutletFilter(ModularComponentModelFilterMixin, CabledObjectModelFilterMixin): class PowerOutletFilter(ModularComponentModelFilterMixin, CabledObjectModelFilterMixin):
type: Annotated['PowerOutletTypeEnum', strawberry.lazy('dcim.graphql.enums')] | None = ( type: Annotated['PowerOutletTypeEnum', strawberry.lazy('dcim.graphql.enums')] | None = (
strawberry_django.filter_field() strawberry_django.filter_field()
@ -738,7 +738,7 @@ class PowerOutletFilter(ModularComponentModelFilterMixin, CabledObjectModelFilte
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()
@strawberry_django.filter(models.PowerOutletTemplate, lookups=True) @strawberry_django.filter_type(models.PowerOutletTemplate, lookups=True)
class PowerOutletTemplateFilter(ModularComponentModelFilterMixin): class PowerOutletTemplateFilter(ModularComponentModelFilterMixin):
type: Annotated['PowerOutletTypeEnum', strawberry.lazy('dcim.graphql.enums')] | None = ( type: Annotated['PowerOutletTypeEnum', strawberry.lazy('dcim.graphql.enums')] | None = (
strawberry_django.filter_field() strawberry_django.filter_field()
@ -752,7 +752,7 @@ class PowerOutletTemplateFilter(ModularComponentModelFilterMixin):
) )
@strawberry_django.filter(models.PowerPanel, lookups=True) @strawberry_django.filter_type(models.PowerPanel, lookups=True)
class PowerPanelFilter(ContactFilterMixin, ImageAttachmentFilterMixin, PrimaryModelFilterMixin): class PowerPanelFilter(ContactFilterMixin, ImageAttachmentFilterMixin, PrimaryModelFilterMixin):
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()
@ -765,7 +765,7 @@ class PowerPanelFilter(ContactFilterMixin, ImageAttachmentFilterMixin, PrimaryMo
name: FilterLookup[str] | None = strawberry_django.filter_field() name: FilterLookup[str] | None = strawberry_django.filter_field()
@strawberry_django.filter(models.PowerPort, lookups=True) @strawberry_django.filter_type(models.PowerPort, lookups=True)
class PowerPortFilter(ModularComponentModelFilterMixin, CabledObjectModelFilterMixin): class PowerPortFilter(ModularComponentModelFilterMixin, CabledObjectModelFilterMixin):
type: Annotated['PowerPortTypeEnum', strawberry.lazy('dcim.graphql.enums')] | None = ( type: Annotated['PowerPortTypeEnum', strawberry.lazy('dcim.graphql.enums')] | None = (
strawberry_django.filter_field() strawberry_django.filter_field()
@ -778,7 +778,7 @@ class PowerPortFilter(ModularComponentModelFilterMixin, CabledObjectModelFilterM
) )
@strawberry_django.filter(models.PowerPortTemplate, lookups=True) @strawberry_django.filter_type(models.PowerPortTemplate, lookups=True)
class PowerPortTemplateFilter(ModularComponentTemplateFilterMixin): class PowerPortTemplateFilter(ModularComponentTemplateFilterMixin):
type: Annotated['PowerPortTypeEnum', strawberry.lazy('dcim.graphql.enums')] | None = ( type: Annotated['PowerPortTypeEnum', strawberry.lazy('dcim.graphql.enums')] | None = (
strawberry_django.filter_field() strawberry_django.filter_field()
@ -791,7 +791,7 @@ class PowerPortTemplateFilter(ModularComponentTemplateFilterMixin):
) )
@strawberry_django.filter(models.RackType, lookups=True) @strawberry_django.filter_type(models.RackType, lookups=True)
class RackTypeFilter(RackBaseFilterMixin): class RackTypeFilter(RackBaseFilterMixin):
form_factor: Annotated['RackFormFactorEnum', strawberry.lazy('dcim.graphql.enums')] | None = ( form_factor: Annotated['RackFormFactorEnum', strawberry.lazy('dcim.graphql.enums')] | None = (
strawberry_django.filter_field() strawberry_django.filter_field()
@ -804,7 +804,7 @@ class RackTypeFilter(RackBaseFilterMixin):
slug: FilterLookup[str] | None = strawberry_django.filter_field() slug: FilterLookup[str] | None = strawberry_django.filter_field()
@strawberry_django.filter(models.Rack, lookups=True) @strawberry_django.filter_type(models.Rack, lookups=True)
class RackFilter(ContactFilterMixin, ImageAttachmentFilterMixin, TenancyFilterMixin, RackBaseFilterMixin): class RackFilter(ContactFilterMixin, ImageAttachmentFilterMixin, TenancyFilterMixin, RackBaseFilterMixin):
form_factor: Annotated['RackFormFactorEnum', strawberry.lazy('dcim.graphql.enums')] | None = ( form_factor: Annotated['RackFormFactorEnum', strawberry.lazy('dcim.graphql.enums')] | None = (
strawberry_django.filter_field() strawberry_django.filter_field()
@ -836,7 +836,7 @@ class RackFilter(ContactFilterMixin, ImageAttachmentFilterMixin, TenancyFilterMi
) )
@strawberry_django.filter(models.RackReservation, lookups=True) @strawberry_django.filter_type(models.RackReservation, lookups=True)
class RackReservationFilter(TenancyFilterMixin, PrimaryModelFilterMixin): class RackReservationFilter(TenancyFilterMixin, PrimaryModelFilterMixin):
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()
@ -848,12 +848,12 @@ class RackReservationFilter(TenancyFilterMixin, PrimaryModelFilterMixin):
description: FilterLookup[str] | None = strawberry_django.filter_field() description: FilterLookup[str] | None = strawberry_django.filter_field()
@strawberry_django.filter(models.RackRole, lookups=True) @strawberry_django.filter_type(models.RackRole, lookups=True)
class RackRoleFilter(OrganizationalModelFilterMixin): class RackRoleFilter(OrganizationalModelFilterMixin):
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()
@strawberry_django.filter(models.RearPort, lookups=True) @strawberry_django.filter_type(models.RearPort, lookups=True)
class RearPortFilter(ModularComponentModelFilterMixin, CabledObjectModelFilterMixin): class RearPortFilter(ModularComponentModelFilterMixin, CabledObjectModelFilterMixin):
type: Annotated['PortTypeEnum', strawberry.lazy('dcim.graphql.enums')] | None = strawberry_django.filter_field() type: Annotated['PortTypeEnum', strawberry.lazy('dcim.graphql.enums')] | None = strawberry_django.filter_field()
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()
@ -862,7 +862,7 @@ class RearPortFilter(ModularComponentModelFilterMixin, CabledObjectModelFilterMi
) )
@strawberry_django.filter(models.RearPortTemplate, lookups=True) @strawberry_django.filter_type(models.RearPortTemplate, lookups=True)
class RearPortTemplateFilter(ModularComponentTemplateFilterMixin): class RearPortTemplateFilter(ModularComponentTemplateFilterMixin):
type: Annotated['PortTypeEnum', strawberry.lazy('dcim.graphql.enums')] | None = strawberry_django.filter_field() type: Annotated['PortTypeEnum', strawberry.lazy('dcim.graphql.enums')] | None = strawberry_django.filter_field()
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()
@ -871,7 +871,7 @@ class RearPortTemplateFilter(ModularComponentTemplateFilterMixin):
) )
@strawberry_django.filter(models.Region, lookups=True) @strawberry_django.filter_type(models.Region, lookups=True)
class RegionFilter(ContactFilterMixin, NestedGroupModelFilterMixin): class RegionFilter(ContactFilterMixin, NestedGroupModelFilterMixin):
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()
@ -881,7 +881,7 @@ class RegionFilter(ContactFilterMixin, NestedGroupModelFilterMixin):
) )
@strawberry_django.filter(models.Site, lookups=True) @strawberry_django.filter_type(models.Site, lookups=True)
class SiteFilter(ContactFilterMixin, ImageAttachmentFilterMixin, TenancyFilterMixin, PrimaryModelFilterMixin): class SiteFilter(ContactFilterMixin, ImageAttachmentFilterMixin, TenancyFilterMixin, PrimaryModelFilterMixin):
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()
@ -915,7 +915,7 @@ class SiteFilter(ContactFilterMixin, ImageAttachmentFilterMixin, TenancyFilterMi
) )
@strawberry_django.filter(models.SiteGroup, lookups=True) @strawberry_django.filter_type(models.SiteGroup, lookups=True)
class SiteGroupFilter(ContactFilterMixin, NestedGroupModelFilterMixin): class SiteGroupFilter(ContactFilterMixin, NestedGroupModelFilterMixin):
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()
@ -925,7 +925,7 @@ class SiteGroupFilter(ContactFilterMixin, NestedGroupModelFilterMixin):
) )
@strawberry_django.filter(models.VirtualChassis, lookups=True) @strawberry_django.filter_type(models.VirtualChassis, lookups=True)
class VirtualChassisFilter(PrimaryModelFilterMixin): class VirtualChassisFilter(PrimaryModelFilterMixin):
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()
@ -937,7 +937,7 @@ class VirtualChassisFilter(PrimaryModelFilterMixin):
member_count: FilterLookup[int] | None = strawberry_django.filter_field() member_count: FilterLookup[int] | None = strawberry_django.filter_field()
@strawberry_django.filter(models.VirtualDeviceContext, lookups=True) @strawberry_django.filter_type(models.VirtualDeviceContext, lookups=True)
class VirtualDeviceContextFilter(TenancyFilterMixin, PrimaryModelFilterMixin): class VirtualDeviceContextFilter(TenancyFilterMixin, PrimaryModelFilterMixin):
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()

View File

@ -40,7 +40,7 @@ __all__ = (
) )
@strawberry_django.filter(models.ConfigContext, lookups=True) @strawberry_django.filter_type(models.ConfigContext, lookups=True)
class ConfigContextFilter(BaseObjectTypeFilterMixin, SyncedDataFilterMixin, ChangeLogFilterMixin): class ConfigContextFilter(BaseObjectTypeFilterMixin, SyncedDataFilterMixin, ChangeLogFilterMixin):
name: FilterLookup[str] = strawberry_django.filter_field() name: FilterLookup[str] = strawberry_django.filter_field()
weight: Annotated['IntegerLookup', strawberry.lazy('netbox.graphql.filter_lookups')] | None = ( weight: Annotated['IntegerLookup', strawberry.lazy('netbox.graphql.filter_lookups')] | None = (
@ -97,7 +97,7 @@ class ConfigContextFilter(BaseObjectTypeFilterMixin, SyncedDataFilterMixin, Chan
) )
@strawberry_django.filter(models.ConfigTemplate, lookups=True) @strawberry_django.filter_type(models.ConfigTemplate, lookups=True)
class ConfigTemplateFilter(BaseObjectTypeFilterMixin, SyncedDataFilterMixin, ChangeLogFilterMixin): class ConfigTemplateFilter(BaseObjectTypeFilterMixin, SyncedDataFilterMixin, ChangeLogFilterMixin):
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()
@ -111,7 +111,7 @@ class ConfigTemplateFilter(BaseObjectTypeFilterMixin, SyncedDataFilterMixin, Cha
as_attachment: FilterLookup[bool] | None = strawberry_django.filter_field() as_attachment: FilterLookup[bool] | None = strawberry_django.filter_field()
@strawberry_django.filter(models.CustomField, lookups=True) @strawberry_django.filter_type(models.CustomField, lookups=True)
class CustomFieldFilter(BaseObjectTypeFilterMixin, ChangeLogFilterMixin): class CustomFieldFilter(BaseObjectTypeFilterMixin, ChangeLogFilterMixin):
type: Annotated['CustomFieldTypeEnum', strawberry.lazy('extras.graphql.enums')] | None = ( type: Annotated['CustomFieldTypeEnum', strawberry.lazy('extras.graphql.enums')] | None = (
strawberry_django.filter_field() strawberry_django.filter_field()
@ -164,7 +164,7 @@ class CustomFieldFilter(BaseObjectTypeFilterMixin, ChangeLogFilterMixin):
comments: FilterLookup[str] | None = strawberry_django.filter_field() comments: FilterLookup[str] | None = strawberry_django.filter_field()
@strawberry_django.filter(models.CustomFieldChoiceSet, lookups=True) @strawberry_django.filter_type(models.CustomFieldChoiceSet, lookups=True)
class CustomFieldChoiceSetFilter(BaseObjectTypeFilterMixin, ChangeLogFilterMixin): class CustomFieldChoiceSetFilter(BaseObjectTypeFilterMixin, ChangeLogFilterMixin):
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()
@ -177,7 +177,7 @@ class CustomFieldChoiceSetFilter(BaseObjectTypeFilterMixin, ChangeLogFilterMixin
order_alphabetically: FilterLookup[bool] | None = strawberry_django.filter_field() order_alphabetically: FilterLookup[bool] | None = strawberry_django.filter_field()
@strawberry_django.filter(models.CustomLink, lookups=True) @strawberry_django.filter_type(models.CustomLink, lookups=True)
class CustomLinkFilter(BaseObjectTypeFilterMixin, ChangeLogFilterMixin): class CustomLinkFilter(BaseObjectTypeFilterMixin, ChangeLogFilterMixin):
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()
@ -193,7 +193,7 @@ class CustomLinkFilter(BaseObjectTypeFilterMixin, ChangeLogFilterMixin):
new_window: FilterLookup[bool] | None = strawberry_django.filter_field() new_window: FilterLookup[bool] | None = strawberry_django.filter_field()
@strawberry_django.filter(models.ExportTemplate, lookups=True) @strawberry_django.filter_type(models.ExportTemplate, lookups=True)
class ExportTemplateFilter(BaseObjectTypeFilterMixin, SyncedDataFilterMixin, ChangeLogFilterMixin): class ExportTemplateFilter(BaseObjectTypeFilterMixin, SyncedDataFilterMixin, ChangeLogFilterMixin):
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()
@ -207,7 +207,7 @@ class ExportTemplateFilter(BaseObjectTypeFilterMixin, SyncedDataFilterMixin, Cha
as_attachment: FilterLookup[bool] | None = strawberry_django.filter_field() as_attachment: FilterLookup[bool] | None = strawberry_django.filter_field()
@strawberry_django.filter(models.ImageAttachment, lookups=True) @strawberry_django.filter_type(models.ImageAttachment, lookups=True)
class ImageAttachmentFilter(BaseObjectTypeFilterMixin, ChangeLogFilterMixin): class ImageAttachmentFilter(BaseObjectTypeFilterMixin, ChangeLogFilterMixin):
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()
@ -222,7 +222,7 @@ class ImageAttachmentFilter(BaseObjectTypeFilterMixin, ChangeLogFilterMixin):
name: FilterLookup[str] | None = strawberry_django.filter_field() name: FilterLookup[str] | None = strawberry_django.filter_field()
@strawberry_django.filter(models.JournalEntry, lookups=True) @strawberry_django.filter_type(models.JournalEntry, lookups=True)
class JournalEntryFilter(BaseObjectTypeFilterMixin, CustomFieldsFilterMixin, TagsFilterMixin, ChangeLogFilterMixin): class JournalEntryFilter(BaseObjectTypeFilterMixin, CustomFieldsFilterMixin, TagsFilterMixin, ChangeLogFilterMixin):
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()
@ -238,7 +238,7 @@ class JournalEntryFilter(BaseObjectTypeFilterMixin, CustomFieldsFilterMixin, Tag
comments: FilterLookup[str] | None = strawberry_django.filter_field() comments: FilterLookup[str] | None = strawberry_django.filter_field()
@strawberry_django.filter(models.NotificationGroup, lookups=True) @strawberry_django.filter_type(models.NotificationGroup, lookups=True)
class NotificationGroupFilter(BaseObjectTypeFilterMixin, ChangeLogFilterMixin): class NotificationGroupFilter(BaseObjectTypeFilterMixin, ChangeLogFilterMixin):
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()
@ -246,7 +246,7 @@ class NotificationGroupFilter(BaseObjectTypeFilterMixin, ChangeLogFilterMixin):
users: Annotated['UserFilter', strawberry.lazy('users.graphql.filters')] | None = strawberry_django.filter_field() users: Annotated['UserFilter', strawberry.lazy('users.graphql.filters')] | None = strawberry_django.filter_field()
@strawberry_django.filter(models.SavedFilter, lookups=True) @strawberry_django.filter_type(models.SavedFilter, lookups=True)
class SavedFilterFilter(BaseObjectTypeFilterMixin, ChangeLogFilterMixin): class SavedFilterFilter(BaseObjectTypeFilterMixin, ChangeLogFilterMixin):
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()
@ -263,7 +263,7 @@ class SavedFilterFilter(BaseObjectTypeFilterMixin, ChangeLogFilterMixin):
) )
@strawberry_django.filter(models.TableConfig, lookups=True) @strawberry_django.filter_type(models.TableConfig, lookups=True)
class TableConfigFilter(BaseObjectTypeFilterMixin, ChangeLogFilterMixin): class TableConfigFilter(BaseObjectTypeFilterMixin, ChangeLogFilterMixin):
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()
@ -276,13 +276,13 @@ class TableConfigFilter(BaseObjectTypeFilterMixin, ChangeLogFilterMixin):
shared: FilterLookup[bool] | None = strawberry_django.filter_field() shared: FilterLookup[bool] | None = strawberry_django.filter_field()
@strawberry_django.filter(models.Tag, lookups=True) @strawberry_django.filter_type(models.Tag, lookups=True)
class TagFilter(BaseObjectTypeFilterMixin, ChangeLogFilterMixin, TagBaseFilterMixin): class TagFilter(BaseObjectTypeFilterMixin, ChangeLogFilterMixin, TagBaseFilterMixin):
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()
description: FilterLookup[str] | None = strawberry_django.filter_field() description: FilterLookup[str] | None = strawberry_django.filter_field()
@strawberry_django.filter(models.Webhook, lookups=True) @strawberry_django.filter_type(models.Webhook, lookups=True)
class WebhookFilter(BaseObjectTypeFilterMixin, CustomFieldsFilterMixin, TagsFilterMixin, ChangeLogFilterMixin): class WebhookFilter(BaseObjectTypeFilterMixin, CustomFieldsFilterMixin, TagsFilterMixin, ChangeLogFilterMixin):
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()
@ -301,7 +301,7 @@ class WebhookFilter(BaseObjectTypeFilterMixin, CustomFieldsFilterMixin, TagsFilt
) )
@strawberry_django.filter(models.EventRule, lookups=True) @strawberry_django.filter_type(models.EventRule, lookups=True)
class EventRuleFilter(BaseObjectTypeFilterMixin, CustomFieldsFilterMixin, TagsFilterMixin, ChangeLogFilterMixin): class EventRuleFilter(BaseObjectTypeFilterMixin, CustomFieldsFilterMixin, TagsFilterMixin, ChangeLogFilterMixin):
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()

View File

@ -46,7 +46,7 @@ __all__ = (
) )
@strawberry_django.filter(models.ASN, lookups=True) @strawberry_django.filter_type(models.ASN, lookups=True)
class ASNFilter(TenancyFilterMixin, PrimaryModelFilterMixin): class ASNFilter(TenancyFilterMixin, PrimaryModelFilterMixin):
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()
@ -61,7 +61,7 @@ class ASNFilter(TenancyFilterMixin, PrimaryModelFilterMixin):
) = strawberry_django.filter_field() ) = strawberry_django.filter_field()
@strawberry_django.filter(models.ASNRange, lookups=True) @strawberry_django.filter_type(models.ASNRange, lookups=True)
class ASNRangeFilter(TenancyFilterMixin, OrganizationalModelFilterMixin): class ASNRangeFilter(TenancyFilterMixin, OrganizationalModelFilterMixin):
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()
@ -75,7 +75,7 @@ class ASNRangeFilter(TenancyFilterMixin, OrganizationalModelFilterMixin):
) )
@strawberry_django.filter(models.Aggregate, lookups=True) @strawberry_django.filter_type(models.Aggregate, lookups=True)
class AggregateFilter(ContactFilterMixin, TenancyFilterMixin, PrimaryModelFilterMixin): class AggregateFilter(ContactFilterMixin, TenancyFilterMixin, PrimaryModelFilterMixin):
prefix: Annotated['PrefixFilter', strawberry.lazy('ipam.graphql.filters')] | None = strawberry_django.filter_field() prefix: Annotated['PrefixFilter', strawberry.lazy('ipam.graphql.filters')] | None = strawberry_django.filter_field()
prefix_id: ID | None = strawberry_django.filter_field() prefix_id: ID | None = strawberry_django.filter_field()
@ -84,7 +84,7 @@ class AggregateFilter(ContactFilterMixin, TenancyFilterMixin, PrimaryModelFilter
date_added: DateFilterLookup[date] | None = strawberry_django.filter_field() date_added: DateFilterLookup[date] | None = strawberry_django.filter_field()
@strawberry_django.filter(models.FHRPGroup, lookups=True) @strawberry_django.filter_type(models.FHRPGroup, lookups=True)
class FHRPGroupFilter(PrimaryModelFilterMixin): class FHRPGroupFilter(PrimaryModelFilterMixin):
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()
@ -102,7 +102,7 @@ class FHRPGroupFilter(PrimaryModelFilterMixin):
) )
@strawberry_django.filter(models.FHRPGroupAssignment, lookups=True) @strawberry_django.filter_type(models.FHRPGroupAssignment, lookups=True)
class FHRPGroupAssignmentFilter(BaseObjectTypeFilterMixin, ChangeLogFilterMixin): class FHRPGroupAssignmentFilter(BaseObjectTypeFilterMixin, ChangeLogFilterMixin):
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()
@ -117,7 +117,7 @@ class FHRPGroupAssignmentFilter(BaseObjectTypeFilterMixin, ChangeLogFilterMixin)
) )
@strawberry_django.filter(models.IPAddress, lookups=True) @strawberry_django.filter_type(models.IPAddress, lookups=True)
class IPAddressFilter(ContactFilterMixin, TenancyFilterMixin, PrimaryModelFilterMixin): class IPAddressFilter(ContactFilterMixin, TenancyFilterMixin, PrimaryModelFilterMixin):
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()
@ -156,7 +156,7 @@ class IPAddressFilter(ContactFilterMixin, TenancyFilterMixin, PrimaryModelFilter
return q return q
@strawberry_django.filter(models.IPRange, lookups=True) @strawberry_django.filter_type(models.IPRange, lookups=True)
class IPRangeFilter(ContactFilterMixin, TenancyFilterMixin, PrimaryModelFilterMixin): class IPRangeFilter(ContactFilterMixin, TenancyFilterMixin, PrimaryModelFilterMixin):
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()
@ -185,7 +185,7 @@ class IPRangeFilter(ContactFilterMixin, TenancyFilterMixin, PrimaryModelFilterMi
return q return q
@strawberry_django.filter(models.Prefix, lookups=True) @strawberry_django.filter_type(models.Prefix, lookups=True)
class PrefixFilter(ContactFilterMixin, ScopedFilterMixin, TenancyFilterMixin, PrimaryModelFilterMixin): class PrefixFilter(ContactFilterMixin, ScopedFilterMixin, TenancyFilterMixin, PrimaryModelFilterMixin):
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()
@ -201,19 +201,19 @@ class PrefixFilter(ContactFilterMixin, ScopedFilterMixin, TenancyFilterMixin, Pr
mark_utilized: FilterLookup[bool] | None = strawberry_django.filter_field() mark_utilized: FilterLookup[bool] | None = strawberry_django.filter_field()
@strawberry_django.filter(models.RIR, lookups=True) @strawberry_django.filter_type(models.RIR, lookups=True)
class RIRFilter(OrganizationalModelFilterMixin): class RIRFilter(OrganizationalModelFilterMixin):
is_private: FilterLookup[bool] | None = strawberry_django.filter_field() is_private: FilterLookup[bool] | None = strawberry_django.filter_field()
@strawberry_django.filter(models.Role, lookups=True) @strawberry_django.filter_type(models.Role, lookups=True)
class RoleFilter(OrganizationalModelFilterMixin): class RoleFilter(OrganizationalModelFilterMixin):
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(models.RouteTarget, lookups=True) @strawberry_django.filter_type(models.RouteTarget, lookups=True)
class RouteTargetFilter(TenancyFilterMixin, PrimaryModelFilterMixin): class RouteTargetFilter(TenancyFilterMixin, PrimaryModelFilterMixin):
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 = (
@ -230,7 +230,7 @@ class RouteTargetFilter(TenancyFilterMixin, PrimaryModelFilterMixin):
) )
@strawberry_django.filter(models.Service, lookups=True) @strawberry_django.filter_type(models.Service, lookups=True)
class ServiceFilter(ContactFilterMixin, ServiceBaseFilterMixin, PrimaryModelFilterMixin): class ServiceFilter(ContactFilterMixin, ServiceBaseFilterMixin, PrimaryModelFilterMixin):
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 = (
@ -242,12 +242,12 @@ class ServiceFilter(ContactFilterMixin, ServiceBaseFilterMixin, PrimaryModelFilt
parent_object_id: ID | None = strawberry_django.filter_field() parent_object_id: ID | None = strawberry_django.filter_field()
@strawberry_django.filter(models.ServiceTemplate, lookups=True) @strawberry_django.filter_type(models.ServiceTemplate, lookups=True)
class ServiceTemplateFilter(ServiceBaseFilterMixin, PrimaryModelFilterMixin): class ServiceTemplateFilter(ServiceBaseFilterMixin, PrimaryModelFilterMixin):
name: FilterLookup[str] | None = strawberry_django.filter_field() name: FilterLookup[str] | None = strawberry_django.filter_field()
@strawberry_django.filter(models.VLAN, lookups=True) @strawberry_django.filter_type(models.VLAN, lookups=True)
class VLANFilter(TenancyFilterMixin, PrimaryModelFilterMixin): class VLANFilter(TenancyFilterMixin, PrimaryModelFilterMixin):
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()
@ -277,19 +277,19 @@ class VLANFilter(TenancyFilterMixin, PrimaryModelFilterMixin):
) )
@strawberry_django.filter(models.VLANGroup, lookups=True) @strawberry_django.filter_type(models.VLANGroup, lookups=True)
class VLANGroupFilter(ScopedFilterMixin, OrganizationalModelFilterMixin): class VLANGroupFilter(ScopedFilterMixin, OrganizationalModelFilterMixin):
vid_ranges: Annotated['IntegerArrayLookup', strawberry.lazy('netbox.graphql.filter_lookups')] | None = ( vid_ranges: Annotated['IntegerArrayLookup', strawberry.lazy('netbox.graphql.filter_lookups')] | None = (
strawberry_django.filter_field() strawberry_django.filter_field()
) )
@strawberry_django.filter(models.VLANTranslationPolicy, lookups=True) @strawberry_django.filter_type(models.VLANTranslationPolicy, lookups=True)
class VLANTranslationPolicyFilter(PrimaryModelFilterMixin): class VLANTranslationPolicyFilter(PrimaryModelFilterMixin):
name: FilterLookup[str] | None = strawberry_django.filter_field() name: FilterLookup[str] | None = strawberry_django.filter_field()
@strawberry_django.filter(models.VLANTranslationRule, lookups=True) @strawberry_django.filter_type(models.VLANTranslationRule, lookups=True)
class VLANTranslationRuleFilter(NetBoxModelFilterMixin): class VLANTranslationRuleFilter(NetBoxModelFilterMixin):
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()
@ -304,7 +304,7 @@ class VLANTranslationRuleFilter(NetBoxModelFilterMixin):
) )
@strawberry_django.filter(models.VRF, lookups=True) @strawberry_django.filter_type(models.VRF, lookups=True)
class VRFFilter(TenancyFilterMixin, PrimaryModelFilterMixin): class VRFFilter(TenancyFilterMixin, PrimaryModelFilterMixin):
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()

View File

@ -53,7 +53,6 @@
<div class="col col-12 col-md-6"> <div class="col col-12 col-md-6">
<div class="card"> <div class="card">
<h2 class="card-header">{% trans "Connection" %}</h2> <h2 class="card-header">{% trans "Connection" %}</h2>
<div class="card-body">
{% if object.mark_connected %} {% if object.mark_connected %}
<div class="card-body"> <div class="card-body">
<span class="text-success"><i class="mdi mdi-check-bold"></i></span> <span class="text-success"><i class="mdi mdi-check-bold"></i></span>

View File

@ -26,6 +26,12 @@
<th scope="row">{% trans "Location" %}</th> <th scope="row">{% trans "Location" %}</th>
<td>{% nested_tree object.location %}</td> <td>{% nested_tree object.location %}</td>
</tr> </tr>
{% if object.virtual_chassis %}
<tr>
<th scope="row">{% trans "Virtual Chassis" %}</th>
<td>{{ object.virtual_chassis|linkify }}</td>
</tr>
{% endif %}
<tr> <tr>
<th scope="row">{% trans "Rack" %}</th> <th scope="row">{% trans "Rack" %}</th>
<td class="d-flex justify-content-between align-items-start"> <td class="d-flex justify-content-between align-items-start">

View File

@ -56,7 +56,7 @@ __all__ = (
) )
@strawberry_django.filter(models.Tenant, lookups=True) @strawberry_django.filter_type(models.Tenant, lookups=True)
class TenantFilter(PrimaryModelFilterMixin, ContactFilterMixin): class TenantFilter(PrimaryModelFilterMixin, 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()
@ -135,7 +135,7 @@ class TenantFilter(PrimaryModelFilterMixin, ContactFilterMixin):
) )
@strawberry_django.filter(models.TenantGroup, lookups=True) @strawberry_django.filter_type(models.TenantGroup, lookups=True)
class TenantGroupFilter(OrganizationalModelFilterMixin): class TenantGroupFilter(OrganizationalModelFilterMixin):
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()
@ -149,7 +149,7 @@ class TenantGroupFilter(OrganizationalModelFilterMixin):
) )
@strawberry_django.filter(models.Contact, lookups=True) @strawberry_django.filter_type(models.Contact, lookups=True)
class ContactFilter(PrimaryModelFilterMixin): class ContactFilter(PrimaryModelFilterMixin):
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()
@ -165,19 +165,19 @@ class ContactFilter(PrimaryModelFilterMixin):
) )
@strawberry_django.filter(models.ContactRole, lookups=True) @strawberry_django.filter_type(models.ContactRole, lookups=True)
class ContactRoleFilter(OrganizationalModelFilterMixin): class ContactRoleFilter(OrganizationalModelFilterMixin):
pass pass
@strawberry_django.filter(models.ContactGroup, lookups=True) @strawberry_django.filter_type(models.ContactGroup, lookups=True)
class ContactGroupFilter(NestedGroupModelFilterMixin): class ContactGroupFilter(NestedGroupModelFilterMixin):
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(models.ContactAssignment, lookups=True) @strawberry_django.filter_type(models.ContactAssignment, lookups=True)
class ContactAssignmentFilter(CustomFieldsFilterMixin, TagsFilterMixin, ChangeLogFilterMixin): class ContactAssignmentFilter(CustomFieldsFilterMixin, TagsFilterMixin, ChangeLogFilterMixin):
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()

View File

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-05-13 05:01+0000\n" "POT-Creation-Date: 2025-05-16 05:02+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -436,7 +436,7 @@ msgstr ""
#: netbox/circuits/forms/filtersets.py:379 #: netbox/circuits/forms/filtersets.py:379
#: netbox/circuits/forms/model_forms.py:343 #: netbox/circuits/forms/model_forms.py:343
#: netbox/circuits/forms/model_forms.py:358 #: netbox/circuits/forms/model_forms.py:358
#: netbox/circuits/tables/virtual_circuits.py:88 #: netbox/circuits/tables/virtual_circuits.py:87
#: netbox/templates/circuits/virtualcircuit.html:20 #: netbox/templates/circuits/virtualcircuit.html:20
#: netbox/templates/circuits/virtualcircuittermination.html:38 #: netbox/templates/circuits/virtualcircuittermination.html:38
msgid "Virtual circuit" msgid "Virtual circuit"
@ -482,7 +482,7 @@ msgstr ""
#: netbox/dcim/forms/bulk_edit.py:1194 netbox/dcim/forms/bulk_edit.py:1239 #: netbox/dcim/forms/bulk_edit.py:1194 netbox/dcim/forms/bulk_edit.py:1239
#: netbox/dcim/forms/bulk_edit.py:1266 netbox/dcim/forms/bulk_edit.py:1284 #: netbox/dcim/forms/bulk_edit.py:1266 netbox/dcim/forms/bulk_edit.py:1284
#: netbox/dcim/forms/bulk_edit.py:1302 netbox/dcim/forms/bulk_edit.py:1320 #: netbox/dcim/forms/bulk_edit.py:1302 netbox/dcim/forms/bulk_edit.py:1320
#: netbox/dcim/forms/bulk_edit.py:1793 netbox/dcim/forms/bulk_edit.py:1834 #: netbox/dcim/forms/bulk_edit.py:1800 netbox/dcim/forms/bulk_edit.py:1841
#: netbox/extras/forms/bulk_edit.py:40 netbox/extras/forms/bulk_edit.py:150 #: netbox/extras/forms/bulk_edit.py:40 netbox/extras/forms/bulk_edit.py:150
#: netbox/extras/forms/bulk_edit.py:183 netbox/extras/forms/bulk_edit.py:211 #: netbox/extras/forms/bulk_edit.py:183 netbox/extras/forms/bulk_edit.py:211
#: netbox/extras/forms/bulk_edit.py:241 netbox/extras/forms/bulk_edit.py:289 #: netbox/extras/forms/bulk_edit.py:241 netbox/extras/forms/bulk_edit.py:289
@ -511,7 +511,8 @@ msgstr ""
#: netbox/templates/core/plugin.html:80 netbox/templates/dcim/cable.html:36 #: netbox/templates/core/plugin.html:80 netbox/templates/dcim/cable.html:36
#: netbox/templates/dcim/consoleport.html:44 #: netbox/templates/dcim/consoleport.html:44
#: netbox/templates/dcim/consoleserverport.html:44 #: netbox/templates/dcim/consoleserverport.html:44
#: netbox/templates/dcim/device.html:94 netbox/templates/dcim/devicebay.html:32 #: netbox/templates/dcim/device.html:100
#: netbox/templates/dcim/devicebay.html:32
#: netbox/templates/dcim/devicerole.html:30 #: netbox/templates/dcim/devicerole.html:30
#: netbox/templates/dcim/devicetype.html:33 #: netbox/templates/dcim/devicetype.html:33
#: netbox/templates/dcim/frontport.html:58 #: netbox/templates/dcim/frontport.html:58
@ -627,7 +628,7 @@ msgstr ""
#: netbox/circuits/tables/providers.py:70 #: netbox/circuits/tables/providers.py:70
#: netbox/circuits/tables/providers.py:101 #: netbox/circuits/tables/providers.py:101
#: netbox/circuits/tables/virtual_circuits.py:46 #: netbox/circuits/tables/virtual_circuits.py:46
#: netbox/circuits/tables/virtual_circuits.py:93 #: netbox/circuits/tables/virtual_circuits.py:92
#: netbox/templates/circuits/circuit.html:18 #: netbox/templates/circuits/circuit.html:18
#: netbox/templates/circuits/circuitgroupassignment.html:26 #: netbox/templates/circuits/circuitgroupassignment.html:26
#: netbox/templates/circuits/circuittermination.html:25 #: netbox/templates/circuits/circuittermination.html:25
@ -653,7 +654,7 @@ msgstr ""
#: netbox/circuits/forms/filtersets.py:321 netbox/dcim/forms/bulk_edit.py:216 #: netbox/circuits/forms/filtersets.py:321 netbox/dcim/forms/bulk_edit.py:216
#: netbox/dcim/forms/bulk_edit.py:656 netbox/dcim/forms/bulk_edit.py:866 #: netbox/dcim/forms/bulk_edit.py:656 netbox/dcim/forms/bulk_edit.py:866
#: netbox/dcim/forms/bulk_edit.py:1235 netbox/dcim/forms/bulk_edit.py:1262 #: netbox/dcim/forms/bulk_edit.py:1235 netbox/dcim/forms/bulk_edit.py:1262
#: netbox/dcim/forms/bulk_edit.py:1789 netbox/dcim/forms/filtersets.py:1132 #: netbox/dcim/forms/bulk_edit.py:1796 netbox/dcim/forms/filtersets.py:1132
#: netbox/dcim/forms/filtersets.py:1390 netbox/dcim/forms/filtersets.py:1543 #: netbox/dcim/forms/filtersets.py:1390 netbox/dcim/forms/filtersets.py:1543
#: netbox/dcim/forms/filtersets.py:1567 netbox/dcim/tables/devices.py:744 #: netbox/dcim/forms/filtersets.py:1567 netbox/dcim/tables/devices.py:744
#: netbox/dcim/tables/devices.py:800 netbox/dcim/tables/devices.py:1041 #: netbox/dcim/tables/devices.py:800 netbox/dcim/tables/devices.py:1041
@ -758,7 +759,7 @@ msgstr ""
#: netbox/dcim/forms/bulk_edit.py:366 netbox/dcim/forms/bulk_edit.py:753 #: netbox/dcim/forms/bulk_edit.py:366 netbox/dcim/forms/bulk_edit.py:753
#: netbox/dcim/forms/bulk_edit.py:818 netbox/dcim/forms/bulk_edit.py:850 #: netbox/dcim/forms/bulk_edit.py:818 netbox/dcim/forms/bulk_edit.py:850
#: netbox/dcim/forms/bulk_edit.py:977 netbox/dcim/forms/bulk_edit.py:1770 #: netbox/dcim/forms/bulk_edit.py:977 netbox/dcim/forms/bulk_edit.py:1770
#: netbox/dcim/forms/bulk_edit.py:1812 netbox/dcim/forms/bulk_import.py:91 #: netbox/dcim/forms/bulk_edit.py:1819 netbox/dcim/forms/bulk_import.py:91
#: netbox/dcim/forms/bulk_import.py:150 netbox/dcim/forms/bulk_import.py:254 #: netbox/dcim/forms/bulk_import.py:150 netbox/dcim/forms/bulk_import.py:254
#: netbox/dcim/forms/bulk_import.py:563 netbox/dcim/forms/bulk_import.py:717 #: netbox/dcim/forms/bulk_import.py:563 netbox/dcim/forms/bulk_import.py:717
#: netbox/dcim/forms/bulk_import.py:1168 netbox/dcim/forms/bulk_import.py:1375 #: netbox/dcim/forms/bulk_import.py:1168 netbox/dcim/forms/bulk_import.py:1375
@ -770,7 +771,7 @@ msgstr ""
#: netbox/dcim/forms/filtersets.py:1394 netbox/dcim/forms/filtersets.py:1645 #: netbox/dcim/forms/filtersets.py:1394 netbox/dcim/forms/filtersets.py:1645
#: netbox/dcim/tables/devices.py:150 netbox/dcim/tables/devices.py:524 #: netbox/dcim/tables/devices.py:150 netbox/dcim/tables/devices.py:524
#: netbox/dcim/tables/devices.py:855 netbox/dcim/tables/devices.py:989 #: netbox/dcim/tables/devices.py:855 netbox/dcim/tables/devices.py:989
#: netbox/dcim/tables/devices.py:1101 netbox/dcim/tables/modules.py:104 #: netbox/dcim/tables/devices.py:1100 netbox/dcim/tables/modules.py:104
#: netbox/dcim/tables/power.py:74 netbox/dcim/tables/racks.py:129 #: netbox/dcim/tables/power.py:74 netbox/dcim/tables/racks.py:129
#: netbox/dcim/tables/sites.py:88 netbox/dcim/tables/sites.py:143 #: netbox/dcim/tables/sites.py:88 netbox/dcim/tables/sites.py:143
#: netbox/ipam/forms/bulk_edit.py:240 netbox/ipam/forms/bulk_edit.py:290 #: netbox/ipam/forms/bulk_edit.py:240 netbox/ipam/forms/bulk_edit.py:290
@ -787,7 +788,7 @@ msgstr ""
#: netbox/templates/circuits/virtualcircuit.html:43 #: netbox/templates/circuits/virtualcircuit.html:43
#: netbox/templates/core/datasource.html:46 netbox/templates/core/job.html:48 #: netbox/templates/core/datasource.html:46 netbox/templates/core/job.html:48
#: netbox/templates/core/rq_task.html:81 netbox/templates/core/system.html:18 #: netbox/templates/core/rq_task.html:81 netbox/templates/core/system.html:18
#: netbox/templates/dcim/cable.html:19 netbox/templates/dcim/device.html:178 #: netbox/templates/dcim/cable.html:19 netbox/templates/dcim/device.html:184
#: netbox/templates/dcim/inventoryitem.html:36 #: netbox/templates/dcim/inventoryitem.html:36
#: netbox/templates/dcim/location.html:45 netbox/templates/dcim/module.html:69 #: netbox/templates/dcim/location.html:45 netbox/templates/dcim/module.html:69
#: netbox/templates/dcim/powerfeed.html:36 #: netbox/templates/dcim/powerfeed.html:36
@ -836,7 +837,7 @@ msgstr ""
#: netbox/circuits/forms/filtersets.py:332 netbox/dcim/forms/bulk_edit.py:131 #: netbox/circuits/forms/filtersets.py:332 netbox/dcim/forms/bulk_edit.py:131
#: netbox/dcim/forms/bulk_edit.py:196 netbox/dcim/forms/bulk_edit.py:361 #: netbox/dcim/forms/bulk_edit.py:196 netbox/dcim/forms/bulk_edit.py:361
#: netbox/dcim/forms/bulk_edit.py:484 netbox/dcim/forms/bulk_edit.py:743 #: netbox/dcim/forms/bulk_edit.py:484 netbox/dcim/forms/bulk_edit.py:743
#: netbox/dcim/forms/bulk_edit.py:856 netbox/dcim/forms/bulk_edit.py:1817 #: netbox/dcim/forms/bulk_edit.py:856 netbox/dcim/forms/bulk_edit.py:1824
#: netbox/dcim/forms/bulk_import.py:110 netbox/dcim/forms/bulk_import.py:155 #: netbox/dcim/forms/bulk_import.py:110 netbox/dcim/forms/bulk_import.py:155
#: netbox/dcim/forms/bulk_import.py:247 netbox/dcim/forms/bulk_import.py:362 #: netbox/dcim/forms/bulk_import.py:247 netbox/dcim/forms/bulk_import.py:362
#: netbox/dcim/forms/bulk_import.py:537 netbox/dcim/forms/bulk_import.py:1387 #: netbox/dcim/forms/bulk_import.py:537 netbox/dcim/forms/bulk_import.py:1387
@ -866,7 +867,7 @@ msgstr ""
#: netbox/ipam/tables/vlans.py:207 netbox/templates/circuits/circuit.html:48 #: netbox/ipam/tables/vlans.py:207 netbox/templates/circuits/circuit.html:48
#: netbox/templates/circuits/circuitgroup.html:36 #: netbox/templates/circuits/circuitgroup.html:36
#: netbox/templates/circuits/virtualcircuit.html:47 #: netbox/templates/circuits/virtualcircuit.html:47
#: netbox/templates/dcim/cable.html:23 netbox/templates/dcim/device.html:79 #: netbox/templates/dcim/cable.html:23 netbox/templates/dcim/device.html:85
#: netbox/templates/dcim/location.html:49 #: netbox/templates/dcim/location.html:49
#: netbox/templates/dcim/powerfeed.html:44 netbox/templates/dcim/rack.html:32 #: netbox/templates/dcim/powerfeed.html:44 netbox/templates/dcim/rack.html:32
#: netbox/templates/dcim/rackreservation.html:49 #: netbox/templates/dcim/rackreservation.html:49
@ -1059,7 +1060,7 @@ msgstr ""
#: netbox/circuits/forms/filtersets.py:305 #: netbox/circuits/forms/filtersets.py:305
#: netbox/circuits/tables/circuits.py:206 netbox/dcim/forms/model_forms.py:656 #: netbox/circuits/tables/circuits.py:206 netbox/dcim/forms/model_forms.py:656
#: netbox/templates/circuits/circuitgroupassignment.html:34 #: netbox/templates/circuits/circuitgroupassignment.html:34
#: netbox/templates/dcim/device.html:133 #: netbox/templates/dcim/device.html:139
#: netbox/templates/dcim/virtualchassis.html:68 #: netbox/templates/dcim/virtualchassis.html:68
#: netbox/templates/dcim/virtualchassis_edit.html:60 #: netbox/templates/dcim/virtualchassis_edit.html:60
#: netbox/templates/ipam/inc/panels/fhrp_groups.html:26 #: netbox/templates/ipam/inc/panels/fhrp_groups.html:26
@ -1075,7 +1076,7 @@ msgstr ""
#: netbox/circuits/forms/filtersets.py:392 #: netbox/circuits/forms/filtersets.py:392
#: netbox/circuits/forms/model_forms.py:325 #: netbox/circuits/forms/model_forms.py:325
#: netbox/circuits/tables/virtual_circuits.py:51 #: netbox/circuits/tables/virtual_circuits.py:51
#: netbox/circuits/tables/virtual_circuits.py:99 #: netbox/circuits/tables/virtual_circuits.py:98
msgid "Provider network" msgid "Provider network"
msgstr "" msgstr ""
@ -1103,7 +1104,7 @@ msgstr ""
#: netbox/ipam/tables/ip.py:269 netbox/ipam/tables/ip.py:325 #: netbox/ipam/tables/ip.py:269 netbox/ipam/tables/ip.py:325
#: netbox/ipam/tables/vlans.py:101 netbox/ipam/tables/vlans.py:213 #: netbox/ipam/tables/vlans.py:101 netbox/ipam/tables/vlans.py:213
#: netbox/templates/circuits/virtualcircuittermination.html:42 #: netbox/templates/circuits/virtualcircuittermination.html:42
#: netbox/templates/dcim/device.html:182 #: netbox/templates/dcim/device.html:188
#: netbox/templates/dcim/inc/panels/inventory_items.html:20 #: netbox/templates/dcim/inc/panels/inventory_items.html:20
#: netbox/templates/dcim/interface.html:178 #: netbox/templates/dcim/interface.html:178
#: netbox/templates/dcim/interface.html:280 #: netbox/templates/dcim/interface.html:280
@ -1207,11 +1208,11 @@ msgstr ""
#: netbox/circuits/forms/bulk_import.py:259 #: netbox/circuits/forms/bulk_import.py:259
#: netbox/circuits/forms/model_forms.py:368 #: netbox/circuits/forms/model_forms.py:368
#: netbox/circuits/tables/virtual_circuits.py:112 #: netbox/circuits/tables/virtual_circuits.py:111
#: netbox/dcim/forms/bulk_import.py:1268 netbox/dcim/forms/model_forms.py:1289 #: netbox/dcim/forms/bulk_import.py:1268 netbox/dcim/forms/model_forms.py:1289
#: netbox/dcim/forms/model_forms.py:1558 netbox/dcim/forms/model_forms.py:1725 #: netbox/dcim/forms/model_forms.py:1558 netbox/dcim/forms/model_forms.py:1725
#: netbox/dcim/forms/model_forms.py:1760 netbox/dcim/forms/model_forms.py:1890 #: netbox/dcim/forms/model_forms.py:1760 netbox/dcim/forms/model_forms.py:1890
#: netbox/dcim/tables/connections.py:65 netbox/dcim/tables/devices.py:1147 #: netbox/dcim/tables/connections.py:65 netbox/dcim/tables/devices.py:1146
#: netbox/ipam/forms/bulk_import.py:324 netbox/ipam/forms/model_forms.py:290 #: netbox/ipam/forms/bulk_import.py:324 netbox/ipam/forms/model_forms.py:290
#: netbox/ipam/forms/model_forms.py:299 netbox/ipam/tables/fhrp.py:64 #: netbox/ipam/forms/model_forms.py:299 netbox/ipam/tables/fhrp.py:64
#: netbox/ipam/tables/ip.py:330 netbox/ipam/tables/vlans.py:147 #: netbox/ipam/tables/ip.py:330 netbox/ipam/tables/vlans.py:147
@ -1350,7 +1351,7 @@ msgstr ""
#: netbox/circuits/forms/filtersets.py:82 netbox/circuits/tables/circuits.py:62 #: netbox/circuits/forms/filtersets.py:82 netbox/circuits/tables/circuits.py:62
#: netbox/circuits/tables/providers.py:64 #: netbox/circuits/tables/providers.py:64
#: netbox/circuits/tables/virtual_circuits.py:55 #: netbox/circuits/tables/virtual_circuits.py:55
#: netbox/circuits/tables/virtual_circuits.py:103 #: netbox/circuits/tables/virtual_circuits.py:102
#: netbox/templates/circuits/circuit.html:22 #: netbox/templates/circuits/circuit.html:22
#: netbox/templates/circuits/provideraccount.html:24 #: netbox/templates/circuits/provideraccount.html:24
msgid "Account" msgid "Account"
@ -1508,7 +1509,7 @@ msgid "member ID"
msgstr "" msgstr ""
#: netbox/circuits/models/circuits.py:201 netbox/ipam/models/fhrp.py:96 #: netbox/circuits/models/circuits.py:201 netbox/ipam/models/fhrp.py:96
#: netbox/tenancy/models/contacts.py:133 #: netbox/tenancy/models/contacts.py:119
msgid "priority" msgid "priority"
msgstr "" msgstr ""
@ -1606,7 +1607,7 @@ msgstr ""
#: netbox/ipam/models/vlans.py:206 netbox/ipam/models/vlans.py:352 #: netbox/ipam/models/vlans.py:206 netbox/ipam/models/vlans.py:352
#: netbox/ipam/models/vrfs.py:20 netbox/ipam/models/vrfs.py:75 #: netbox/ipam/models/vrfs.py:20 netbox/ipam/models/vrfs.py:75
#: netbox/netbox/models/__init__.py:142 netbox/netbox/models/__init__.py:190 #: netbox/netbox/models/__init__.py:142 netbox/netbox/models/__init__.py:190
#: netbox/tenancy/models/contacts.py:59 netbox/tenancy/models/tenants.py:19 #: netbox/tenancy/models/contacts.py:57 netbox/tenancy/models/tenants.py:19
#: netbox/tenancy/models/tenants.py:42 netbox/users/models/permissions.py:19 #: netbox/tenancy/models/tenants.py:42 netbox/users/models/permissions.py:19
#: netbox/users/models/users.py:28 netbox/virtualization/models/clusters.py:52 #: netbox/users/models/users.py:28 netbox/virtualization/models/clusters.py:52
#: netbox/virtualization/models/virtualmachines.py:71 #: netbox/virtualization/models/virtualmachines.py:71
@ -1856,7 +1857,7 @@ msgstr ""
#: netbox/circuits/tables/circuits.py:83 netbox/circuits/tables/providers.py:46 #: netbox/circuits/tables/circuits.py:83 netbox/circuits/tables/providers.py:46
#: netbox/circuits/tables/providers.py:80 #: netbox/circuits/tables/providers.py:80
#: netbox/circuits/tables/providers.py:105 #: netbox/circuits/tables/providers.py:105
#: netbox/circuits/tables/virtual_circuits.py:68 #: netbox/circuits/tables/virtual_circuits.py:67
#: netbox/dcim/tables/devices.py:1074 netbox/dcim/tables/devicetypes.py:97 #: netbox/dcim/tables/devices.py:1074 netbox/dcim/tables/devicetypes.py:97
#: netbox/dcim/tables/modules.py:27 netbox/dcim/tables/modules.py:68 #: netbox/dcim/tables/modules.py:27 netbox/dcim/tables/modules.py:68
#: netbox/dcim/tables/modules.py:107 netbox/dcim/tables/power.py:39 #: netbox/dcim/tables/modules.py:107 netbox/dcim/tables/power.py:39
@ -1929,7 +1930,7 @@ msgstr ""
msgid "ASN Count" msgid "ASN Count"
msgstr "" msgstr ""
#: netbox/circuits/tables/virtual_circuits.py:65 #: netbox/circuits/tables/virtual_circuits.py:64
#: netbox/netbox/navigation/menu.py:235 #: netbox/netbox/navigation/menu.py:235
#: netbox/templates/circuits/virtualcircuit.html:87 #: netbox/templates/circuits/virtualcircuit.html:87
#: netbox/templates/vpn/l2vpn.html:60 netbox/templates/vpn/tunnel.html:72 #: netbox/templates/vpn/l2vpn.html:60 netbox/templates/vpn/tunnel.html:72
@ -1937,9 +1938,9 @@ msgstr ""
msgid "Terminations" msgid "Terminations"
msgstr "" msgstr ""
#: netbox/circuits/tables/virtual_circuits.py:109 #: netbox/circuits/tables/virtual_circuits.py:108
#: netbox/dcim/forms/bulk_edit.py:789 netbox/dcim/forms/bulk_edit.py:1343 #: netbox/dcim/forms/bulk_edit.py:789 netbox/dcim/forms/bulk_edit.py:1343
#: netbox/dcim/forms/bulk_edit.py:1755 netbox/dcim/forms/bulk_edit.py:1807 #: netbox/dcim/forms/bulk_edit.py:1755 netbox/dcim/forms/bulk_edit.py:1814
#: netbox/dcim/forms/bulk_import.py:699 netbox/dcim/forms/bulk_import.py:761 #: netbox/dcim/forms/bulk_import.py:699 netbox/dcim/forms/bulk_import.py:761
#: netbox/dcim/forms/bulk_import.py:787 netbox/dcim/forms/bulk_import.py:813 #: netbox/dcim/forms/bulk_import.py:787 netbox/dcim/forms/bulk_import.py:813
#: netbox/dcim/forms/bulk_import.py:833 netbox/dcim/forms/bulk_import.py:889 #: netbox/dcim/forms/bulk_import.py:833 netbox/dcim/forms/bulk_import.py:889
@ -1972,7 +1973,7 @@ msgstr ""
#: netbox/templates/circuits/virtualcircuittermination.html:56 #: netbox/templates/circuits/virtualcircuittermination.html:56
#: netbox/templates/dcim/consoleport.html:20 #: netbox/templates/dcim/consoleport.html:20
#: netbox/templates/dcim/consoleserverport.html:20 #: netbox/templates/dcim/consoleserverport.html:20
#: netbox/templates/dcim/device.html:15 netbox/templates/dcim/device.html:130 #: netbox/templates/dcim/device.html:15 netbox/templates/dcim/device.html:136
#: netbox/templates/dcim/device_edit.html:12 #: netbox/templates/dcim/device_edit.html:12
#: netbox/templates/dcim/devicebay.html:20 #: netbox/templates/dcim/devicebay.html:20
#: netbox/templates/dcim/devicebay.html:48 #: netbox/templates/dcim/devicebay.html:48
@ -3047,7 +3048,7 @@ msgstr ""
msgid "Reserved" msgid "Reserved"
msgstr "" msgstr ""
#: netbox/dcim/choices.py:101 netbox/templates/dcim/device.html:259 #: netbox/dcim/choices.py:101 netbox/templates/dcim/device.html:265
msgid "Available" msgid "Available"
msgstr "" msgstr ""
@ -3088,7 +3089,7 @@ msgstr ""
#: netbox/dcim/forms/model_forms.py:517 netbox/dcim/forms/model_forms.py:1207 #: netbox/dcim/forms/model_forms.py:517 netbox/dcim/forms/model_forms.py:1207
#: netbox/dcim/forms/model_forms.py:1676 netbox/dcim/forms/object_import.py:177 #: netbox/dcim/forms/model_forms.py:1676 netbox/dcim/forms/object_import.py:177
#: netbox/dcim/tables/devices.py:696 netbox/dcim/tables/devices.py:906 #: netbox/dcim/tables/devices.py:696 netbox/dcim/tables/devices.py:906
#: netbox/dcim/tables/devices.py:993 netbox/dcim/tables/devices.py:1153 #: netbox/dcim/tables/devices.py:993 netbox/dcim/tables/devices.py:1152
#: netbox/extras/tables/tables.py:237 netbox/ipam/forms/bulk_import.py:568 #: netbox/extras/tables/tables.py:237 netbox/ipam/forms/bulk_import.py:568
#: netbox/ipam/forms/model_forms.py:768 netbox/ipam/tables/fhrp.py:59 #: netbox/ipam/forms/model_forms.py:768 netbox/ipam/tables/fhrp.py:59
#: netbox/ipam/tables/ip.py:336 netbox/ipam/tables/services.py:44 #: netbox/ipam/tables/ip.py:336 netbox/ipam/tables/services.py:44
@ -3120,14 +3121,14 @@ msgstr ""
msgid "Child" msgid "Child"
msgstr "" msgstr ""
#: netbox/dcim/choices.py:167 netbox/templates/dcim/device.html:349 #: netbox/dcim/choices.py:167 netbox/templates/dcim/device.html:355
#: netbox/templates/dcim/rack.html:133 #: netbox/templates/dcim/rack.html:133
#: netbox/templates/dcim/rack_elevation_list.html:20 #: netbox/templates/dcim/rack_elevation_list.html:20
#: netbox/templates/dcim/rackreservation.html:76 #: netbox/templates/dcim/rackreservation.html:76
msgid "Front" msgid "Front"
msgstr "" msgstr ""
#: netbox/dcim/choices.py:168 netbox/templates/dcim/device.html:355 #: netbox/dcim/choices.py:168 netbox/templates/dcim/device.html:361
#: netbox/templates/dcim/rack.html:139 #: netbox/templates/dcim/rack.html:139
#: netbox/templates/dcim/rack_elevation_list.html:21 #: netbox/templates/dcim/rack_elevation_list.html:21
#: netbox/templates/dcim/rackreservation.html:82 #: netbox/templates/dcim/rackreservation.html:82
@ -3729,7 +3730,7 @@ msgstr ""
#: netbox/dcim/filtersets.py:1591 netbox/dcim/forms/filtersets.py:111 #: netbox/dcim/filtersets.py:1591 netbox/dcim/forms/filtersets.py:111
#: netbox/dcim/tables/devices.py:216 netbox/netbox/navigation/menu.py:79 #: netbox/dcim/tables/devices.py:216 netbox/netbox/navigation/menu.py:79
#: netbox/templates/dcim/device.html:120 #: netbox/templates/dcim/device.html:31 netbox/templates/dcim/device.html:126
#: netbox/templates/dcim/device_edit.html:95 #: netbox/templates/dcim/device_edit.html:95
#: netbox/templates/dcim/virtualchassis.html:20 #: netbox/templates/dcim/virtualchassis.html:20
#: netbox/templates/dcim/virtualchassis_add.html:12 #: netbox/templates/dcim/virtualchassis_add.html:12
@ -3884,7 +3885,7 @@ msgid "LAG interface (ID)"
msgstr "" msgstr ""
#: netbox/dcim/filtersets.py:1923 netbox/dcim/tables/devices.py:612 #: netbox/dcim/filtersets.py:1923 netbox/dcim/tables/devices.py:612
#: netbox/dcim/tables/devices.py:1142 netbox/templates/dcim/interface.html:131 #: netbox/dcim/tables/devices.py:1141 netbox/templates/dcim/interface.html:131
#: netbox/templates/dcim/macaddress.html:11 #: netbox/templates/dcim/macaddress.html:11
#: netbox/templates/dcim/macaddress.html:14 #: netbox/templates/dcim/macaddress.html:14
#: netbox/templates/virtualization/vminterface.html:79 #: netbox/templates/virtualization/vminterface.html:79
@ -3981,7 +3982,7 @@ msgstr ""
#: netbox/dcim/forms/object_create.py:208 #: netbox/dcim/forms/object_create.py:208
#: netbox/dcim/forms/object_create.py:357 netbox/dcim/tables/devices.py:175 #: netbox/dcim/forms/object_create.py:357 netbox/dcim/tables/devices.py:175
#: netbox/dcim/tables/devices.py:747 netbox/dcim/tables/devicetypes.py:253 #: netbox/dcim/tables/devices.py:747 netbox/dcim/tables/devicetypes.py:253
#: netbox/templates/dcim/device.html:43 netbox/templates/dcim/device.html:131 #: netbox/templates/dcim/device.html:49 netbox/templates/dcim/device.html:137
#: netbox/templates/dcim/modulebay.html:38 #: netbox/templates/dcim/modulebay.html:38
#: netbox/templates/dcim/virtualchassis.html:66 #: netbox/templates/dcim/virtualchassis.html:66
#: netbox/templates/dcim/virtualchassis_edit.html:59 #: netbox/templates/dcim/virtualchassis_edit.html:59
@ -4104,7 +4105,7 @@ msgstr ""
#: netbox/extras/forms/bulk_import.py:238 netbox/extras/forms/filtersets.py:66 #: netbox/extras/forms/bulk_import.py:238 netbox/extras/forms/filtersets.py:66
#: netbox/extras/forms/filtersets.py:160 netbox/extras/forms/filtersets.py:254 #: netbox/extras/forms/filtersets.py:160 netbox/extras/forms/filtersets.py:254
#: netbox/extras/forms/filtersets.py:284 netbox/extras/forms/model_forms.py:572 #: netbox/extras/forms/filtersets.py:284 netbox/extras/forms/model_forms.py:572
#: netbox/ipam/forms/bulk_edit.py:193 netbox/templates/dcim/device.html:324 #: netbox/ipam/forms/bulk_edit.py:193 netbox/templates/dcim/device.html:330
#: netbox/templates/dcim/devicetype.html:49 #: netbox/templates/dcim/devicetype.html:49
#: netbox/templates/dcim/moduletype.html:51 netbox/templates/dcim/rack.html:81 #: netbox/templates/dcim/moduletype.html:51 netbox/templates/dcim/rack.html:81
#: netbox/templates/dcim/racktype.html:41 #: netbox/templates/dcim/racktype.html:41
@ -4142,7 +4143,7 @@ msgid "Outer Dimensions"
msgstr "" msgstr ""
#: netbox/dcim/forms/bulk_edit.py:316 netbox/dcim/forms/model_forms.py:234 #: netbox/dcim/forms/bulk_edit.py:316 netbox/dcim/forms/model_forms.py:234
#: netbox/dcim/forms/model_forms.py:315 netbox/templates/dcim/device.html:315 #: netbox/dcim/forms/model_forms.py:315 netbox/templates/dcim/device.html:321
#: netbox/templates/dcim/inc/panels/racktype_dimensions.html:3 #: netbox/templates/dcim/inc/panels/racktype_dimensions.html:3
msgid "Dimensions" msgid "Dimensions"
msgstr "" msgstr ""
@ -4159,7 +4160,7 @@ msgid "Rack type"
msgstr "" msgstr ""
#: netbox/dcim/forms/bulk_edit.py:384 netbox/dcim/forms/bulk_edit.py:765 #: netbox/dcim/forms/bulk_edit.py:384 netbox/dcim/forms/bulk_edit.py:765
#: netbox/dcim/forms/bulk_edit.py:826 netbox/templates/dcim/device.html:104 #: netbox/dcim/forms/bulk_edit.py:826 netbox/templates/dcim/device.html:110
#: netbox/templates/dcim/module.html:77 netbox/templates/dcim/modulebay.html:70 #: netbox/templates/dcim/module.html:77 netbox/templates/dcim/modulebay.html:70
#: netbox/templates/dcim/rack.html:57 #: netbox/templates/dcim/rack.html:57
#: netbox/templates/virtualization/virtualmachine.html:35 #: netbox/templates/virtualization/virtualmachine.html:35
@ -4177,7 +4178,7 @@ msgstr ""
#: netbox/dcim/forms/bulk_import.py:295 netbox/dcim/forms/bulk_import.py:453 #: netbox/dcim/forms/bulk_import.py:295 netbox/dcim/forms/bulk_import.py:453
#: netbox/dcim/forms/bulk_import.py:638 netbox/dcim/forms/filtersets.py:282 #: netbox/dcim/forms/bulk_import.py:638 netbox/dcim/forms/filtersets.py:282
#: netbox/dcim/forms/filtersets.py:513 netbox/dcim/forms/filtersets.py:684 #: netbox/dcim/forms/filtersets.py:513 netbox/dcim/forms/filtersets.py:684
#: netbox/dcim/forms/filtersets.py:824 netbox/templates/dcim/device.html:98 #: netbox/dcim/forms/filtersets.py:824 netbox/templates/dcim/device.html:104
#: netbox/templates/dcim/devicetype.html:65 #: netbox/templates/dcim/devicetype.html:65
#: netbox/templates/dcim/moduletype.html:47 netbox/templates/dcim/rack.html:65 #: netbox/templates/dcim/moduletype.html:47 netbox/templates/dcim/rack.html:65
#: netbox/templates/dcim/racktype.html:28 #: netbox/templates/dcim/racktype.html:28
@ -4196,7 +4197,7 @@ msgstr ""
#: netbox/dcim/forms/model_forms.py:583 netbox/dcim/forms/model_forms.py:861 #: netbox/dcim/forms/model_forms.py:583 netbox/dcim/forms/model_forms.py:861
#: netbox/dcim/forms/object_create.py:404 netbox/dcim/tables/devices.py:171 #: netbox/dcim/forms/object_create.py:404 netbox/dcim/tables/devices.py:171
#: netbox/dcim/tables/power.py:70 netbox/dcim/tables/racks.py:225 #: netbox/dcim/tables/power.py:70 netbox/dcim/tables/racks.py:225
#: netbox/ipam/forms/filtersets.py:467 netbox/templates/dcim/device.html:30 #: netbox/ipam/forms/filtersets.py:467 netbox/templates/dcim/device.html:36
#: netbox/templates/dcim/inc/cable_termination.html:16 #: netbox/templates/dcim/inc/cable_termination.html:16
#: netbox/templates/dcim/powerfeed.html:28 netbox/templates/dcim/rack.html:13 #: netbox/templates/dcim/powerfeed.html:28 netbox/templates/dcim/rack.html:13
#: netbox/templates/dcim/rack/base.html:4 #: netbox/templates/dcim/rack/base.html:4
@ -4239,7 +4240,7 @@ msgstr ""
#: netbox/dcim/forms/model_forms.py:1083 netbox/dcim/forms/model_forms.py:1111 #: netbox/dcim/forms/model_forms.py:1083 netbox/dcim/forms/model_forms.py:1111
#: netbox/dcim/forms/model_forms.py:1142 netbox/dcim/forms/model_forms.py:1161 #: netbox/dcim/forms/model_forms.py:1142 netbox/dcim/forms/model_forms.py:1161
#: netbox/dcim/forms/model_forms.py:1179 netbox/dcim/forms/object_create.py:123 #: netbox/dcim/forms/model_forms.py:1179 netbox/dcim/forms/object_create.py:123
#: netbox/dcim/tables/devicetypes.py:82 netbox/templates/dcim/device.html:88 #: netbox/dcim/tables/devicetypes.py:82 netbox/templates/dcim/device.html:94
#: netbox/templates/dcim/devicebay.html:52 netbox/templates/dcim/module.html:61 #: netbox/templates/dcim/devicebay.html:52 netbox/templates/dcim/module.html:61
msgid "Device Type" msgid "Device Type"
msgstr "" msgstr ""
@ -4310,7 +4311,7 @@ msgstr ""
#: netbox/dcim/forms/bulk_edit.py:748 netbox/dcim/forms/bulk_import.py:556 #: netbox/dcim/forms/bulk_edit.py:748 netbox/dcim/forms/bulk_import.py:556
#: netbox/dcim/forms/filtersets.py:816 netbox/dcim/forms/model_forms.py:555 #: netbox/dcim/forms/filtersets.py:816 netbox/dcim/forms/model_forms.py:555
#: netbox/dcim/forms/model_forms.py:618 netbox/dcim/tables/devices.py:192 #: netbox/dcim/forms/model_forms.py:618 netbox/dcim/tables/devices.py:192
#: netbox/extras/filtersets.py:656 netbox/templates/dcim/device.html:186 #: netbox/extras/filtersets.py:656 netbox/templates/dcim/device.html:192
#: netbox/templates/dcim/platform.html:26 #: netbox/templates/dcim/platform.html:26
#: netbox/templates/virtualization/virtualmachine.html:27 #: netbox/templates/virtualization/virtualmachine.html:27
#: netbox/virtualization/forms/bulk_edit.py:142 #: netbox/virtualization/forms/bulk_edit.py:142
@ -4326,7 +4327,7 @@ msgstr ""
#: netbox/dcim/forms/model_forms.py:627 netbox/dcim/tables/devices.py:212 #: netbox/dcim/forms/model_forms.py:627 netbox/dcim/tables/devices.py:212
#: netbox/extras/filtersets.py:689 netbox/extras/forms/filtersets.py:364 #: netbox/extras/filtersets.py:689 netbox/extras/forms/filtersets.py:364
#: netbox/ipam/forms/filtersets.py:439 netbox/ipam/forms/filtersets.py:472 #: netbox/ipam/forms/filtersets.py:439 netbox/ipam/forms/filtersets.py:472
#: netbox/templates/dcim/device.html:239 #: netbox/templates/dcim/device.html:245
#: netbox/templates/virtualization/cluster.html:10 #: netbox/templates/virtualization/cluster.html:10
#: netbox/templates/virtualization/virtualmachine.html:92 #: netbox/templates/virtualization/virtualmachine.html:92
#: netbox/templates/virtualization/virtualmachine.html:101 #: netbox/templates/virtualization/virtualmachine.html:101
@ -5085,7 +5086,7 @@ msgid "{side_upper} side termination not found: {device} {name}"
msgstr "" msgstr ""
#: netbox/dcim/forms/bulk_import.py:1461 netbox/dcim/forms/model_forms.py:891 #: netbox/dcim/forms/bulk_import.py:1461 netbox/dcim/forms/model_forms.py:891
#: netbox/dcim/tables/devices.py:1065 netbox/templates/dcim/device.html:132 #: netbox/dcim/tables/devices.py:1065 netbox/templates/dcim/device.html:138
#: netbox/templates/dcim/virtualchassis.html:27 #: netbox/templates/dcim/virtualchassis.html:27
#: netbox/templates/dcim/virtualchassis.html:67 #: netbox/templates/dcim/virtualchassis.html:67
msgid "Master" msgid "Master"
@ -5116,7 +5117,7 @@ msgid "Single or three-phase"
msgstr "" msgstr ""
#: netbox/dcim/forms/bulk_import.py:1607 netbox/dcim/forms/model_forms.py:1847 #: netbox/dcim/forms/bulk_import.py:1607 netbox/dcim/forms/model_forms.py:1847
#: netbox/templates/dcim/device.html:190 #: netbox/templates/dcim/device.html:196
#: netbox/templates/dcim/virtualdevicecontext.html:30 #: netbox/templates/dcim/virtualdevicecontext.html:30
#: netbox/templates/virtualization/virtualmachine.html:52 #: netbox/templates/virtualization/virtualmachine.html:52
msgid "Primary IPv4" msgid "Primary IPv4"
@ -5127,7 +5128,7 @@ msgid "IPv4 address with mask, e.g. 1.2.3.4/24"
msgstr "" msgstr ""
#: netbox/dcim/forms/bulk_import.py:1614 netbox/dcim/forms/model_forms.py:1856 #: netbox/dcim/forms/bulk_import.py:1614 netbox/dcim/forms/model_forms.py:1856
#: netbox/templates/dcim/device.html:206 #: netbox/templates/dcim/device.html:212
#: netbox/templates/dcim/virtualdevicecontext.html:41 #: netbox/templates/dcim/virtualdevicecontext.html:41
#: netbox/templates/virtualization/virtualmachine.html:68 #: netbox/templates/virtualization/virtualmachine.html:68
msgid "Primary IPv6" msgid "Primary IPv6"
@ -5341,12 +5342,12 @@ msgstr ""
msgid "A virtual chassis member already exists in position {vc_position}." msgid "A virtual chassis member already exists in position {vc_position}."
msgstr "" msgstr ""
#: netbox/dcim/forms/mixins.py:27 netbox/dcim/forms/mixins.py:75 #: netbox/dcim/forms/mixins.py:27 netbox/dcim/forms/mixins.py:79
#: netbox/ipam/forms/bulk_edit.py:425 netbox/ipam/forms/model_forms.py:617 #: netbox/ipam/forms/bulk_edit.py:425 netbox/ipam/forms/model_forms.py:617
msgid "Scope type" msgid "Scope type"
msgstr "" msgstr ""
#: netbox/dcim/forms/mixins.py:30 netbox/dcim/forms/mixins.py:78 #: netbox/dcim/forms/mixins.py:30 netbox/dcim/forms/mixins.py:82
#: netbox/ipam/forms/bulk_edit.py:270 netbox/ipam/forms/bulk_edit.py:428 #: netbox/ipam/forms/bulk_edit.py:270 netbox/ipam/forms/bulk_edit.py:428
#: netbox/ipam/forms/bulk_edit.py:447 netbox/ipam/forms/filtersets.py:181 #: netbox/ipam/forms/bulk_edit.py:447 netbox/ipam/forms/filtersets.py:181
#: netbox/ipam/forms/model_forms.py:231 netbox/ipam/forms/model_forms.py:620 #: netbox/ipam/forms/model_forms.py:231 netbox/ipam/forms/model_forms.py:620
@ -5365,7 +5366,7 @@ msgstr ""
msgid "Scope" msgid "Scope"
msgstr "" msgstr ""
#: netbox/dcim/forms/mixins.py:104 netbox/ipam/forms/bulk_import.py:452 #: netbox/dcim/forms/mixins.py:108 netbox/ipam/forms/bulk_import.py:452
msgid "Scope type (app & model)" msgid "Scope type (app & model)"
msgstr "" msgstr ""
@ -5474,7 +5475,7 @@ msgstr ""
#: netbox/dcim/forms/model_forms.py:1290 netbox/dcim/forms/model_forms.py:1761 #: netbox/dcim/forms/model_forms.py:1290 netbox/dcim/forms/model_forms.py:1761
#: netbox/dcim/tables/connections.py:27 #: netbox/dcim/tables/connections.py:27
#: netbox/templates/dcim/consoleport.html:17 #: netbox/templates/dcim/consoleport.html:17
#: netbox/templates/dcim/consoleserverport.html:74 #: netbox/templates/dcim/consoleserverport.html:73
#: netbox/templates/dcim/frontport.html:112 #: netbox/templates/dcim/frontport.html:112
msgid "Console Port" msgid "Console Port"
msgstr "" msgstr ""
@ -5489,7 +5490,7 @@ msgstr ""
#: netbox/dcim/forms/model_forms.py:1292 netbox/dcim/forms/model_forms.py:1763 #: netbox/dcim/forms/model_forms.py:1292 netbox/dcim/forms/model_forms.py:1763
#: netbox/templates/circuits/inc/circuit_termination_fields.html:53 #: netbox/templates/circuits/inc/circuit_termination_fields.html:53
#: netbox/templates/dcim/consoleport.html:76 #: netbox/templates/dcim/consoleport.html:76
#: netbox/templates/dcim/consoleserverport.html:77 #: netbox/templates/dcim/consoleserverport.html:76
#: netbox/templates/dcim/frontport.html:17 #: netbox/templates/dcim/frontport.html:17
#: netbox/templates/dcim/frontport.html:115 #: netbox/templates/dcim/frontport.html:115
#: netbox/templates/dcim/interface.html:244 #: netbox/templates/dcim/interface.html:244
@ -5501,7 +5502,7 @@ msgstr ""
#: netbox/dcim/tables/devices.py:750 #: netbox/dcim/tables/devices.py:750
#: netbox/templates/circuits/inc/circuit_termination_fields.html:54 #: netbox/templates/circuits/inc/circuit_termination_fields.html:54
#: netbox/templates/dcim/consoleport.html:79 #: netbox/templates/dcim/consoleport.html:79
#: netbox/templates/dcim/consoleserverport.html:80 #: netbox/templates/dcim/consoleserverport.html:79
#: netbox/templates/dcim/frontport.html:50 #: netbox/templates/dcim/frontport.html:50
#: netbox/templates/dcim/frontport.html:118 #: netbox/templates/dcim/frontport.html:118
#: netbox/templates/dcim/interface.html:247 #: netbox/templates/dcim/interface.html:247
@ -7233,7 +7234,7 @@ msgid "VMs"
msgstr "" msgstr ""
#: netbox/dcim/tables/devices.py:111 netbox/dcim/tables/devices.py:226 #: netbox/dcim/tables/devices.py:111 netbox/dcim/tables/devices.py:226
#: netbox/extras/forms/model_forms.py:712 netbox/templates/dcim/device.html:112 #: netbox/extras/forms/model_forms.py:712 netbox/templates/dcim/device.html:118
#: netbox/templates/dcim/devicerole.html:48 #: netbox/templates/dcim/devicerole.html:48
#: netbox/templates/dcim/platform.html:41 #: netbox/templates/dcim/platform.html:41
#: netbox/templates/extras/configtemplate.html:10 #: netbox/templates/extras/configtemplate.html:10
@ -7244,7 +7245,7 @@ msgstr ""
msgid "Config Template" msgid "Config Template"
msgstr "" msgstr ""
#: netbox/dcim/tables/devices.py:197 netbox/dcim/tables/devices.py:1106 #: netbox/dcim/tables/devices.py:197 netbox/dcim/tables/devices.py:1105
#: netbox/ipam/forms/bulk_import.py:587 netbox/ipam/forms/model_forms.py:316 #: netbox/ipam/forms/bulk_import.py:587 netbox/ipam/forms/model_forms.py:316
#: netbox/ipam/forms/model_forms.py:329 netbox/ipam/tables/ip.py:314 #: netbox/ipam/forms/model_forms.py:329 netbox/ipam/tables/ip.py:314
#: netbox/ipam/tables/ip.py:381 netbox/ipam/tables/ip.py:391 #: netbox/ipam/tables/ip.py:381 netbox/ipam/tables/ip.py:391
@ -7253,12 +7254,12 @@ msgstr ""
msgid "IP Address" msgid "IP Address"
msgstr "" msgstr ""
#: netbox/dcim/tables/devices.py:201 netbox/dcim/tables/devices.py:1110 #: netbox/dcim/tables/devices.py:201 netbox/dcim/tables/devices.py:1109
#: netbox/virtualization/tables/virtualmachines.py:56 #: netbox/virtualization/tables/virtualmachines.py:56
msgid "IPv4 Address" msgid "IPv4 Address"
msgstr "" msgstr ""
#: netbox/dcim/tables/devices.py:205 netbox/dcim/tables/devices.py:1114 #: netbox/dcim/tables/devices.py:205 netbox/dcim/tables/devices.py:1113
#: netbox/virtualization/tables/virtualmachines.py:60 #: netbox/virtualization/tables/virtualmachines.py:60
msgid "IPv6 Address" msgid "IPv6 Address"
msgstr "" msgstr ""
@ -7296,7 +7297,7 @@ msgstr ""
msgid "Power outlets" msgid "Power outlets"
msgstr "" msgstr ""
#: netbox/dcim/tables/devices.py:256 netbox/dcim/tables/devices.py:1119 #: netbox/dcim/tables/devices.py:256 netbox/dcim/tables/devices.py:1118
#: netbox/dcim/tables/devicetypes.py:133 netbox/dcim/views.py:1173 #: netbox/dcim/tables/devicetypes.py:133 netbox/dcim/views.py:1173
#: netbox/dcim/views.py:1473 netbox/dcim/views.py:2226 #: netbox/dcim/views.py:1473 netbox/dcim/views.py:2226
#: netbox/netbox/navigation/menu.py:95 netbox/netbox/navigation/menu.py:259 #: netbox/netbox/navigation/menu.py:95 netbox/netbox/navigation/menu.py:259
@ -7576,7 +7577,7 @@ msgid "Racks"
msgstr "" msgstr ""
#: netbox/dcim/tables/racks.py:63 netbox/dcim/tables/racks.py:145 #: netbox/dcim/tables/racks.py:63 netbox/dcim/tables/racks.py:145
#: netbox/templates/dcim/device.html:318 #: netbox/templates/dcim/device.html:324
#: netbox/templates/dcim/inc/panels/racktype_dimensions.html:14 #: netbox/templates/dcim/inc/panels/racktype_dimensions.html:14
msgid "Height" msgid "Height"
msgstr "" msgstr ""
@ -10645,7 +10646,7 @@ msgstr ""
msgid "Defined range exceeds maximum supported size ({max_size})" msgid "Defined range exceeds maximum supported size ({max_size})"
msgstr "" msgstr ""
#: netbox/ipam/models/ip.py:721 netbox/tenancy/models/contacts.py:78 #: netbox/ipam/models/ip.py:721 netbox/tenancy/models/contacts.py:76
msgid "address" msgid "address"
msgstr "" msgstr ""
@ -10887,7 +10888,7 @@ msgstr ""
#: netbox/ipam/tables/ip.py:78 netbox/ipam/tables/ip.py:222 #: netbox/ipam/tables/ip.py:78 netbox/ipam/tables/ip.py:222
#: netbox/ipam/tables/ip.py:281 netbox/ipam/tables/vlans.py:55 #: netbox/ipam/tables/ip.py:281 netbox/ipam/tables/vlans.py:55
#: netbox/templates/dcim/device.html:260 #: netbox/templates/dcim/device.html:266
#: netbox/templates/ipam/aggregate.html:24 #: netbox/templates/ipam/aggregate.html:24
#: netbox/templates/ipam/iprange.html:37 netbox/templates/ipam/prefix.html:102 #: netbox/templates/ipam/iprange.html:37 netbox/templates/ipam/prefix.html:102
msgid "Utilization" msgid "Utilization"
@ -11170,7 +11171,7 @@ msgstr ""
msgid "Tab" msgid "Tab"
msgstr "" msgstr ""
#: netbox/netbox/choices.py:193 netbox/templates/dcim/device.html:327 #: netbox/netbox/choices.py:193 netbox/templates/dcim/device.html:333
#: netbox/templates/dcim/rack.html:107 #: netbox/templates/dcim/rack.html:107
msgid "Kilograms" msgid "Kilograms"
msgstr "" msgstr ""
@ -11179,7 +11180,7 @@ msgstr ""
msgid "Grams" msgid "Grams"
msgstr "" msgstr ""
#: netbox/netbox/choices.py:195 netbox/templates/dcim/device.html:328 #: netbox/netbox/choices.py:195 netbox/templates/dcim/device.html:334
#: netbox/templates/dcim/rack.html:108 #: netbox/templates/dcim/rack.html:108
msgid "Pounds" msgid "Pounds"
msgstr "" msgstr ""
@ -11527,7 +11528,7 @@ msgstr ""
msgid "Modules" msgid "Modules"
msgstr "" msgstr ""
#: netbox/netbox/navigation/menu.py:80 netbox/templates/dcim/device.html:160 #: netbox/netbox/navigation/menu.py:80 netbox/templates/dcim/device.html:166
#: netbox/templates/dcim/virtualdevicecontext.html:8 #: netbox/templates/dcim/virtualdevicecontext.html:8
msgid "Virtual Device Contexts" msgid "Virtual Device Contexts"
msgstr "" msgstr ""
@ -11605,7 +11606,7 @@ msgstr ""
msgid "Service Templates" msgid "Service Templates"
msgstr "" msgstr ""
#: netbox/netbox/navigation/menu.py:213 netbox/templates/dcim/device.html:302 #: netbox/netbox/navigation/menu.py:213 netbox/templates/dcim/device.html:308
#: netbox/templates/ipam/ipaddress.html:118 #: netbox/templates/ipam/ipaddress.html:118
#: netbox/templates/virtualization/virtualmachine.html:154 #: netbox/templates/virtualization/virtualmachine.html:154
msgid "Services" msgid "Services"
@ -12043,6 +12044,7 @@ msgid "Toggle all"
msgstr "" msgstr ""
#: netbox/netbox/tables/columns.py:307 #: netbox/netbox/tables/columns.py:307
#: netbox/templates/inc/table_controls_htmx.html:35
msgid "Toggle Dropdown" msgid "Toggle Dropdown"
msgstr "" msgstr ""
@ -12507,7 +12509,7 @@ msgstr ""
#: netbox/templates/circuits/inc/circuit_termination_fields.html:20 #: netbox/templates/circuits/inc/circuit_termination_fields.html:20
#: netbox/templates/dcim/consoleport.html:59 #: netbox/templates/dcim/consoleport.html:59
#: netbox/templates/dcim/consoleserverport.html:60 #: netbox/templates/dcim/consoleserverport.html:59
#: netbox/templates/dcim/powerfeed.html:114 #: netbox/templates/dcim/powerfeed.html:114
msgid "Marked as connected" msgid "Marked as connected"
msgstr "" msgstr ""
@ -12551,7 +12553,7 @@ msgstr ""
#: netbox/templates/circuits/inc/circuit_termination_fields.html:49 #: netbox/templates/circuits/inc/circuit_termination_fields.html:49
#: netbox/templates/dcim/consoleport.html:69 #: netbox/templates/dcim/consoleport.html:69
#: netbox/templates/dcim/consoleserverport.html:70 #: netbox/templates/dcim/consoleserverport.html:69
#: netbox/templates/dcim/frontport.html:102 #: netbox/templates/dcim/frontport.html:102
#: netbox/templates/dcim/interface.html:237 #: netbox/templates/dcim/interface.html:237
#: netbox/templates/dcim/interface.html:257 #: netbox/templates/dcim/interface.html:257
@ -13070,7 +13072,7 @@ msgid "Rename Selected"
msgstr "" msgstr ""
#: netbox/templates/dcim/consoleport.html:65 #: netbox/templates/dcim/consoleport.html:65
#: netbox/templates/dcim/consoleserverport.html:66 #: netbox/templates/dcim/consoleserverport.html:65
#: netbox/templates/dcim/frontport.html:98 #: netbox/templates/dcim/frontport.html:98
#: netbox/templates/dcim/interface.html:233 #: netbox/templates/dcim/interface.html:233
#: netbox/templates/dcim/poweroutlet.html:83 #: netbox/templates/dcim/poweroutlet.html:83
@ -13078,86 +13080,86 @@ msgstr ""
msgid "Not Connected" msgid "Not Connected"
msgstr "" msgstr ""
#: netbox/templates/dcim/device.html:34 #: netbox/templates/dcim/device.html:40
msgid "Highlight device in rack" msgid "Highlight device in rack"
msgstr "" msgstr ""
#: netbox/templates/dcim/device.html:55 #: netbox/templates/dcim/device.html:61
msgid "Not racked" msgid "Not racked"
msgstr "" msgstr ""
#: netbox/templates/dcim/device.html:62 netbox/templates/dcim/site.html:94 #: netbox/templates/dcim/device.html:68 netbox/templates/dcim/site.html:94
msgid "GPS Coordinates" msgid "GPS Coordinates"
msgstr "" msgstr ""
#: netbox/templates/dcim/device.html:68 netbox/templates/dcim/site.html:81 #: netbox/templates/dcim/device.html:74 netbox/templates/dcim/site.html:81
#: netbox/templates/dcim/site.html:100 #: netbox/templates/dcim/site.html:100
msgid "Map" msgid "Map"
msgstr "" msgstr ""
#: netbox/templates/dcim/device.html:108 #: netbox/templates/dcim/device.html:114
#: netbox/templates/dcim/inventoryitem.html:60 #: netbox/templates/dcim/inventoryitem.html:60
#: netbox/templates/dcim/module.html:81 netbox/templates/dcim/modulebay.html:74 #: netbox/templates/dcim/module.html:81 netbox/templates/dcim/modulebay.html:74
#: netbox/templates/dcim/rack.html:61 #: netbox/templates/dcim/rack.html:61
msgid "Asset Tag" msgid "Asset Tag"
msgstr "" msgstr ""
#: netbox/templates/dcim/device.html:123 #: netbox/templates/dcim/device.html:129
msgid "View Virtual Chassis" msgid "View Virtual Chassis"
msgstr "" msgstr ""
#: netbox/templates/dcim/device.html:164 #: netbox/templates/dcim/device.html:170
msgid "Create VDC" msgid "Create VDC"
msgstr "" msgstr ""
#: netbox/templates/dcim/device.html:175 #: netbox/templates/dcim/device.html:181
#: netbox/templates/dcim/device_edit.html:66 #: netbox/templates/dcim/device_edit.html:66
#: netbox/virtualization/forms/model_forms.py:230 #: netbox/virtualization/forms/model_forms.py:230
msgid "Management" msgid "Management"
msgstr "" msgstr ""
#: netbox/templates/dcim/device.html:195 netbox/templates/dcim/device.html:211 #: netbox/templates/dcim/device.html:201 netbox/templates/dcim/device.html:217
#: netbox/templates/dcim/device.html:227 #: netbox/templates/dcim/device.html:233
#: netbox/templates/virtualization/virtualmachine.html:57 #: netbox/templates/virtualization/virtualmachine.html:57
#: netbox/templates/virtualization/virtualmachine.html:73 #: netbox/templates/virtualization/virtualmachine.html:73
msgid "NAT for" msgid "NAT for"
msgstr "" msgstr ""
#: netbox/templates/dcim/device.html:197 netbox/templates/dcim/device.html:213 #: netbox/templates/dcim/device.html:203 netbox/templates/dcim/device.html:219
#: netbox/templates/dcim/device.html:229 #: netbox/templates/dcim/device.html:235
#: netbox/templates/virtualization/virtualmachine.html:59 #: netbox/templates/virtualization/virtualmachine.html:59
#: netbox/templates/virtualization/virtualmachine.html:75 #: netbox/templates/virtualization/virtualmachine.html:75
msgid "NAT" msgid "NAT"
msgstr "" msgstr ""
#: netbox/templates/dcim/device.html:252 netbox/templates/dcim/rack.html:73 #: netbox/templates/dcim/device.html:258 netbox/templates/dcim/rack.html:73
msgid "Power Utilization" msgid "Power Utilization"
msgstr "" msgstr ""
#: netbox/templates/dcim/device.html:256 #: netbox/templates/dcim/device.html:262
msgid "Input" msgid "Input"
msgstr "" msgstr ""
#: netbox/templates/dcim/device.html:257 #: netbox/templates/dcim/device.html:263
msgid "Outlets" msgid "Outlets"
msgstr "" msgstr ""
#: netbox/templates/dcim/device.html:258 #: netbox/templates/dcim/device.html:264
msgid "Allocated" msgid "Allocated"
msgstr "" msgstr ""
#: netbox/templates/dcim/device.html:268 netbox/templates/dcim/device.html:270 #: netbox/templates/dcim/device.html:274 netbox/templates/dcim/device.html:276
#: netbox/templates/dcim/device.html:286 #: netbox/templates/dcim/device.html:292
#: netbox/templates/dcim/powerfeed.html:67 #: netbox/templates/dcim/powerfeed.html:67
msgid "VA" msgid "VA"
msgstr "" msgstr ""
#: netbox/templates/dcim/device.html:280 #: netbox/templates/dcim/device.html:286
msgctxt "Leg of a power feed" msgctxt "Leg of a power feed"
msgid "Leg" msgid "Leg"
msgstr "" msgstr ""
#: netbox/templates/dcim/device.html:306 #: netbox/templates/dcim/device.html:312
#: netbox/templates/virtualization/virtualmachine.html:158 #: netbox/templates/virtualization/virtualmachine.html:158
msgid "Add a service" msgid "Add a service"
msgstr "" msgstr ""
@ -15189,63 +15191,55 @@ msgstr ""
msgid "Assigned contact" msgid "Assigned contact"
msgstr "" msgstr ""
#: netbox/tenancy/models/contacts.py:33 #: netbox/tenancy/models/contacts.py:32
msgid "contact group" msgid "contact group"
msgstr "" msgstr ""
#: netbox/tenancy/models/contacts.py:34 #: netbox/tenancy/models/contacts.py:33
msgid "contact groups" msgid "contact groups"
msgstr "" msgstr ""
#: netbox/tenancy/models/contacts.py:43 #: netbox/tenancy/models/contacts.py:42
msgid "contact role" msgid "contact role"
msgstr "" msgstr ""
#: netbox/tenancy/models/contacts.py:44 #: netbox/tenancy/models/contacts.py:43
msgid "contact roles" msgid "contact roles"
msgstr "" msgstr ""
#: netbox/tenancy/models/contacts.py:64 #: netbox/tenancy/models/contacts.py:62
msgid "title" msgid "title"
msgstr "" msgstr ""
#: netbox/tenancy/models/contacts.py:69 #: netbox/tenancy/models/contacts.py:67
msgid "phone" msgid "phone"
msgstr "" msgstr ""
#: netbox/tenancy/models/contacts.py:74 #: netbox/tenancy/models/contacts.py:72
msgid "email" msgid "email"
msgstr "" msgstr ""
#: netbox/tenancy/models/contacts.py:83 #: netbox/tenancy/models/contacts.py:81
msgid "link" msgid "link"
msgstr "" msgstr ""
#: netbox/tenancy/models/contacts.py:93 #: netbox/tenancy/models/contacts.py:91
msgid "contact" msgid "contact"
msgstr "" msgstr ""
#: netbox/tenancy/models/contacts.py:94 #: netbox/tenancy/models/contacts.py:92
msgid "contacts" msgid "contacts"
msgstr "" msgstr ""
#: netbox/tenancy/models/contacts.py:108 #: netbox/tenancy/models/contacts.py:139
msgid "contact group membership"
msgstr ""
#: netbox/tenancy/models/contacts.py:109
msgid "contact group memberships"
msgstr ""
#: netbox/tenancy/models/contacts.py:153
msgid "contact assignment" msgid "contact assignment"
msgstr "" msgstr ""
#: netbox/tenancy/models/contacts.py:154 #: netbox/tenancy/models/contacts.py:140
msgid "contact assignments" msgid "contact assignments"
msgstr "" msgstr ""
#: netbox/tenancy/models/contacts.py:170 #: netbox/tenancy/models/contacts.py:156
#, python-brace-format #, python-brace-format
msgid "Contacts cannot be assigned to this object type ({type})." msgid "Contacts cannot be assigned to this object type ({type})."
msgstr "" msgstr ""

View File

@ -14,13 +14,13 @@ __all__ = (
) )
@strawberry_django.filter(models.Group, lookups=True) @strawberry_django.filter_type(models.Group, lookups=True)
class GroupFilter(BaseObjectTypeFilterMixin): class GroupFilter(BaseObjectTypeFilterMixin):
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()
@strawberry_django.filter(models.User, lookups=True) @strawberry_django.filter_type(models.User, lookups=True)
class UserFilter(BaseObjectTypeFilterMixin): class UserFilter(BaseObjectTypeFilterMixin):
username: FilterLookup[str] | None = strawberry_django.filter_field() username: FilterLookup[str] | None = strawberry_django.filter_field()
first_name: FilterLookup[str] | None = strawberry_django.filter_field() first_name: FilterLookup[str] | None = strawberry_django.filter_field()

View File

@ -39,7 +39,7 @@ __all__ = (
) )
@strawberry_django.filter(models.Cluster, lookups=True) @strawberry_django.filter_type(models.Cluster, lookups=True)
class ClusterFilter(ContactFilterMixin, ScopedFilterMixin, TenancyFilterMixin, PrimaryModelFilterMixin): class ClusterFilter(ContactFilterMixin, ScopedFilterMixin, TenancyFilterMixin, PrimaryModelFilterMixin):
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 = (
@ -58,19 +58,19 @@ class ClusterFilter(ContactFilterMixin, ScopedFilterMixin, TenancyFilterMixin, P
) )
@strawberry_django.filter(models.ClusterGroup, lookups=True) @strawberry_django.filter_type(models.ClusterGroup, lookups=True)
class ClusterGroupFilter(ContactFilterMixin, OrganizationalModelFilterMixin): class ClusterGroupFilter(ContactFilterMixin, OrganizationalModelFilterMixin):
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(models.ClusterType, lookups=True) @strawberry_django.filter_type(models.ClusterType, lookups=True)
class ClusterTypeFilter(OrganizationalModelFilterMixin): class ClusterTypeFilter(OrganizationalModelFilterMixin):
pass pass
@strawberry_django.filter(models.VirtualMachine, lookups=True) @strawberry_django.filter_type(models.VirtualMachine, lookups=True)
class VirtualMachineFilter( class VirtualMachineFilter(
ContactFilterMixin, ContactFilterMixin,
ImageAttachmentFilterMixin, ImageAttachmentFilterMixin,
@ -130,7 +130,7 @@ class VirtualMachineFilter(
) )
@strawberry_django.filter(models.VMInterface, lookups=True) @strawberry_django.filter_type(models.VMInterface, lookups=True)
class VMInterfaceFilter(VMComponentFilterMixin, InterfaceBaseFilterMixin): class VMInterfaceFilter(VMComponentFilterMixin, 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()
@ -155,7 +155,7 @@ class VMInterfaceFilter(VMComponentFilterMixin, InterfaceBaseFilterMixin):
) )
@strawberry_django.filter(models.VirtualDisk, lookups=True) @strawberry_django.filter_type(models.VirtualDisk, lookups=True)
class VirtualDiskFilter(VMComponentFilterMixin): class VirtualDiskFilter(VMComponentFilterMixin):
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()

View File

@ -31,12 +31,12 @@ __all__ = (
) )
@strawberry_django.filter(models.TunnelGroup, lookups=True) @strawberry_django.filter_type(models.TunnelGroup, lookups=True)
class TunnelGroupFilter(OrganizationalModelFilterMixin): class TunnelGroupFilter(OrganizationalModelFilterMixin):
pass pass
@strawberry_django.filter(models.TunnelTermination, lookups=True) @strawberry_django.filter_type(models.TunnelTermination, lookups=True)
class TunnelTerminationFilter( class TunnelTerminationFilter(
BaseObjectTypeFilterMixin, CustomFieldsFilterMixin, TagsFilterMixin, ChangeLogFilterMixin BaseObjectTypeFilterMixin, CustomFieldsFilterMixin, TagsFilterMixin, ChangeLogFilterMixin
): ):
@ -56,7 +56,7 @@ class TunnelTerminationFilter(
outside_ip_id: ID | None = strawberry_django.filter_field() outside_ip_id: ID | None = strawberry_django.filter_field()
@strawberry_django.filter(models.Tunnel, lookups=True) @strawberry_django.filter_type(models.Tunnel, lookups=True)
class TunnelFilter(TenancyFilterMixin, PrimaryModelFilterMixin): class TunnelFilter(TenancyFilterMixin, PrimaryModelFilterMixin):
name: FilterLookup[str] | None = strawberry_django.filter_field() name: FilterLookup[str] | None = strawberry_django.filter_field()
status: Annotated['TunnelStatusEnum', strawberry.lazy('vpn.graphql.enums')] | None = ( status: Annotated['TunnelStatusEnum', strawberry.lazy('vpn.graphql.enums')] | None = (
@ -80,7 +80,7 @@ class TunnelFilter(TenancyFilterMixin, PrimaryModelFilterMixin):
) )
@strawberry_django.filter(models.IKEProposal, lookups=True) @strawberry_django.filter_type(models.IKEProposal, lookups=True)
class IKEProposalFilter(PrimaryModelFilterMixin): class IKEProposalFilter(PrimaryModelFilterMixin):
name: FilterLookup[str] | None = strawberry_django.filter_field() name: FilterLookup[str] | None = strawberry_django.filter_field()
authentication_method: Annotated['AuthenticationMethodEnum', strawberry.lazy('vpn.graphql.enums')] | None = ( authentication_method: Annotated['AuthenticationMethodEnum', strawberry.lazy('vpn.graphql.enums')] | None = (
@ -101,7 +101,7 @@ class IKEProposalFilter(PrimaryModelFilterMixin):
) )
@strawberry_django.filter(models.IKEPolicy, lookups=True) @strawberry_django.filter_type(models.IKEPolicy, lookups=True)
class IKEPolicyFilter(PrimaryModelFilterMixin): class IKEPolicyFilter(PrimaryModelFilterMixin):
name: FilterLookup[str] | None = strawberry_django.filter_field() name: FilterLookup[str] | None = strawberry_django.filter_field()
version: Annotated['IKEVersionEnum', strawberry.lazy('vpn.graphql.enums')] | None = strawberry_django.filter_field() version: Annotated['IKEVersionEnum', strawberry.lazy('vpn.graphql.enums')] | None = strawberry_django.filter_field()
@ -112,7 +112,7 @@ class IKEPolicyFilter(PrimaryModelFilterMixin):
preshared_key: FilterLookup[str] | None = strawberry_django.filter_field() preshared_key: FilterLookup[str] | None = strawberry_django.filter_field()
@strawberry_django.filter(models.IPSecProposal, lookups=True) @strawberry_django.filter_type(models.IPSecProposal, lookups=True)
class IPSecProposalFilter(PrimaryModelFilterMixin): class IPSecProposalFilter(PrimaryModelFilterMixin):
name: FilterLookup[str] | None = strawberry_django.filter_field() name: FilterLookup[str] | None = strawberry_django.filter_field()
encryption_algorithm: Annotated['EncryptionAlgorithmEnum', strawberry.lazy('vpn.graphql.enums')] | None = ( encryption_algorithm: Annotated['EncryptionAlgorithmEnum', strawberry.lazy('vpn.graphql.enums')] | None = (
@ -132,7 +132,7 @@ class IPSecProposalFilter(PrimaryModelFilterMixin):
) )
@strawberry_django.filter(models.IPSecPolicy, lookups=True) @strawberry_django.filter_type(models.IPSecPolicy, lookups=True)
class IPSecPolicyFilter(PrimaryModelFilterMixin): class IPSecPolicyFilter(PrimaryModelFilterMixin):
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 = (
@ -141,7 +141,7 @@ class IPSecPolicyFilter(PrimaryModelFilterMixin):
pfs_group: Annotated['DHGroupEnum', strawberry.lazy('vpn.graphql.enums')] | None = strawberry_django.filter_field() pfs_group: Annotated['DHGroupEnum', strawberry.lazy('vpn.graphql.enums')] | None = strawberry_django.filter_field()
@strawberry_django.filter(models.IPSecProfile, lookups=True) @strawberry_django.filter_type(models.IPSecProfile, lookups=True)
class IPSecProfileFilter(PrimaryModelFilterMixin): class IPSecProfileFilter(PrimaryModelFilterMixin):
name: FilterLookup[str] | None = strawberry_django.filter_field() name: FilterLookup[str] | None = strawberry_django.filter_field()
mode: Annotated['IPSecModeEnum', strawberry.lazy('vpn.graphql.enums')] | None = strawberry_django.filter_field() mode: Annotated['IPSecModeEnum', strawberry.lazy('vpn.graphql.enums')] | None = strawberry_django.filter_field()
@ -155,7 +155,7 @@ class IPSecProfileFilter(PrimaryModelFilterMixin):
ipsec_policy_id: ID | None = strawberry_django.filter_field() ipsec_policy_id: ID | None = strawberry_django.filter_field()
@strawberry_django.filter(models.L2VPN, lookups=True) @strawberry_django.filter_type(models.L2VPN, lookups=True)
class L2VPNFilter(ContactFilterMixin, TenancyFilterMixin, PrimaryModelFilterMixin): class L2VPNFilter(ContactFilterMixin, TenancyFilterMixin, PrimaryModelFilterMixin):
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()
@ -174,7 +174,7 @@ class L2VPNFilter(ContactFilterMixin, TenancyFilterMixin, PrimaryModelFilterMixi
) )
@strawberry_django.filter(models.L2VPNTermination, lookups=True) @strawberry_django.filter_type(models.L2VPNTermination, lookups=True)
class L2VPNTerminationFilter(NetBoxModelFilterMixin): class L2VPNTerminationFilter(NetBoxModelFilterMixin):
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()

View File

@ -23,12 +23,12 @@ __all__ = (
) )
@strawberry_django.filter(models.WirelessLANGroup, lookups=True) @strawberry_django.filter_type(models.WirelessLANGroup, lookups=True)
class WirelessLANGroupFilter(NestedGroupModelFilterMixin): class WirelessLANGroupFilter(NestedGroupModelFilterMixin):
pass pass
@strawberry_django.filter(models.WirelessLAN, lookups=True) @strawberry_django.filter_type(models.WirelessLAN, lookups=True)
class WirelessLANFilter( class WirelessLANFilter(
WirelessAuthenticationBaseFilterMixin, WirelessAuthenticationBaseFilterMixin,
ScopedFilterMixin, ScopedFilterMixin,
@ -47,7 +47,7 @@ class WirelessLANFilter(
vlan_id: ID | None = strawberry_django.filter_field() vlan_id: ID | None = strawberry_django.filter_field()
@strawberry_django.filter(models.WirelessLink, lookups=True) @strawberry_django.filter_type(models.WirelessLink, lookups=True)
class WirelessLinkFilter( class WirelessLinkFilter(
WirelessAuthenticationBaseFilterMixin, WirelessAuthenticationBaseFilterMixin,
DistanceFilterMixin, DistanceFilterMixin,