From 7c289aebc744682370d6a5acac5175de0dbec93d Mon Sep 17 00:00:00 2001 From: Arthur Date: Wed, 6 Mar 2024 07:52:42 -0800 Subject: [PATCH] 9856 fix OrganizationalObjectType --- netbox/dcim/graphql/types.py | 24 ------------------------ netbox/netbox/graphql/types.py | 10 +++++++++- netbox/tenancy/graphql/types.py | 16 ---------------- netbox/wireless/graphql/types.py | 8 -------- 4 files changed, 9 insertions(+), 49 deletions(-) diff --git a/netbox/dcim/graphql/types.py b/netbox/dcim/graphql/types.py index 81df74d4a..06d3ec425 100644 --- a/netbox/dcim/graphql/types.py +++ b/netbox/dcim/graphql/types.py @@ -520,10 +520,6 @@ class InventoryItemRoleType(OrganizationalObjectType): ) class LocationType(VLANGroupsMixin, ImageAttachmentsMixin, ContactsMixin, OrganizationalObjectType): - @strawberry_django.field - def children(self) -> List[Annotated["LocationType", strawberry.lazy('dcim.graphql.types')]]: - return self.children.all() - @strawberry_django.field def powerpanel_set(self) -> List[Annotated["PowerPanelType", strawberry.lazy('dcim.graphql.types')]]: return self.powerpanel_set.all() @@ -540,10 +536,6 @@ class LocationType(VLANGroupsMixin, ImageAttachmentsMixin, ContactsMixin, Organi def vlan_groups(self) -> List[Annotated["VLANGroupType", strawberry.lazy('ipam.graphql.types')]]: return self.vlan_groups.all() - @strawberry_django.field - def parent(self) -> Annotated["LocationType", strawberry.lazy('dcim.graphql.types')] | None: - return self.parent - @strawberry_django.field def devices(self) -> List[Annotated["DeviceType", strawberry.lazy('dcim.graphql.types')]]: return self.devices.all() @@ -844,18 +836,10 @@ class RearPortTemplateType(ComponentTemplateObjectType): ) class RegionType(VLANGroupsMixin, ContactsMixin, OrganizationalObjectType): - @strawberry_django.field - def parent(self) -> Annotated["RegionType", strawberry.lazy('dcim.graphql.types')]: - return self.region - @strawberry_django.field def sites(self) -> List[Annotated["SiteType", strawberry.lazy('dcim.graphql.types')]]: return self.sites.all() - @strawberry_django.field - def children(self) -> List[Annotated["RegionType", strawberry.lazy('dcim.graphql.types')]]: - return self.children.all() - @strawberry_django.field def vlan_groups(self) -> List[Annotated["VLANGroupType", strawberry.lazy('ipam.graphql.types')]]: return self.vlan_groups.all() @@ -929,14 +913,6 @@ class SiteType(VLANGroupsMixin, ImageAttachmentsMixin, ContactsMixin, NetBoxObje ) class SiteGroupType(VLANGroupsMixin, ContactsMixin, OrganizationalObjectType): - @strawberry_django.field - def parent(self) -> Annotated["SiteGroupType", strawberry.lazy('dcim.graphql.types')]: - return self.region - - @strawberry_django.field - def children(self) -> List[Annotated["SiteGroupType", strawberry.lazy('dcim.graphql.types')]]: - return self.children.all() - @strawberry_django.field def sites(self) -> List[Annotated["SiteType", strawberry.lazy('dcim.graphql.types')]]: return self.sites.all() diff --git a/netbox/netbox/graphql/types.py b/netbox/netbox/graphql/types.py index f1a7bcfe5..7d7fea992 100644 --- a/netbox/netbox/graphql/types.py +++ b/netbox/netbox/graphql/types.py @@ -1,3 +1,5 @@ +from typing import Annotated, List + import strawberry from strawberry import auto import strawberry_django @@ -64,7 +66,13 @@ class OrganizationalObjectType( """ Base type for organizational models """ - pass + @strawberry_django.field + def parent(self) -> Annotated["LocationType", strawberry.lazy('dcim.graphql.types')] | None: + return self.parent + + @strawberry_django.field + def children(self) -> List[Annotated["WirelessLANGroupType", strawberry.lazy('wireless.graphql.types')]]: + return self.children.all() class NetBoxObjectType( diff --git a/netbox/tenancy/graphql/types.py b/netbox/tenancy/graphql/types.py index 27a260e3d..77c7cfea8 100644 --- a/netbox/tenancy/graphql/types.py +++ b/netbox/tenancy/graphql/types.py @@ -141,18 +141,10 @@ class TenantType(NetBoxObjectType): ) class TenantGroupType(OrganizationalObjectType): - @strawberry_django.field - def parent(self) -> Annotated["TenantGroupType", strawberry.lazy('tenancy.graphql.types')]: - return self.parent - @strawberry_django.field def tenants(self) -> List[TenantType]: return self.tenants.all() - @strawberry_django.field - def children(self) -> List[Annotated["TenantGroupType", strawberry.lazy('tenancy.graphql.types')]]: - return self.children.all() - # # Contacts @@ -190,18 +182,10 @@ class ContactRoleType(ContactAssignmentsMixin, OrganizationalObjectType): ) class ContactGroupType(OrganizationalObjectType): - @strawberry_django.field - def parent(self) -> Annotated["ContactGroupType", strawberry.lazy('tenancy.graphql.types')]: - return self.parent - @strawberry_django.field def contacts(self) -> List[ContactType]: return self.clusters.all() - @strawberry_django.field - def children(self) -> List[Annotated["ContactGroupType", strawberry.lazy('tenancy.graphql.types')]]: - return self.children.all() - @strawberry_django.type( models.ContactAssignment, diff --git a/netbox/wireless/graphql/types.py b/netbox/wireless/graphql/types.py index 189c565ec..12e9c57ae 100644 --- a/netbox/wireless/graphql/types.py +++ b/netbox/wireless/graphql/types.py @@ -22,18 +22,10 @@ __all__ = ( ) class WirelessLANGroupType(OrganizationalObjectType): - @strawberry_django.field - def parent(self) -> Annotated["WirelessLANGroupType", strawberry.lazy('wireless.graphql.types')]: - return self.parent - @strawberry_django.field def wireless_lans(self) -> List[Annotated["WirelessLANType", strawberry.lazy('wireless.graphql.types')]]: return self.wireless_lans.all() - @strawberry_django.field - def children(self) -> List[Annotated["WirelessLANGroupType", strawberry.lazy('wireless.graphql.types')]]: - return self.children.all() - @strawberry_django.type( models.WirelessLAN,