Просмотр исходного кода

9856 fix OrganizationalObjectType

Arthur 1 год назад
Родитель
Сommit
7c289aebc7

+ 0 - 24
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()

+ 9 - 1
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(

+ 0 - 16
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,

+ 0 - 8
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,