mirror of
https://github.com/netbox-community/netbox.git
synced 2025-07-28 03:16:25 -06:00
Refactor base Graphene object types
This commit is contained in:
parent
8c7ef2a95e
commit
c7ef34fb90
@ -1,12 +1,29 @@
|
|||||||
import graphene
|
import graphene
|
||||||
|
from graphene.types.generic import GenericScalar
|
||||||
|
|
||||||
__all__ = (
|
__all__ = (
|
||||||
|
'CustomFieldsMixin',
|
||||||
'ImageAttachmentsMixin',
|
'ImageAttachmentsMixin',
|
||||||
|
'TagsMixin',
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
class CustomFieldsMixin:
|
||||||
|
custom_fields = GenericScalar()
|
||||||
|
|
||||||
|
def resolve_custom_fields(self, info):
|
||||||
|
return self.custom_field_data
|
||||||
|
|
||||||
|
|
||||||
class ImageAttachmentsMixin:
|
class ImageAttachmentsMixin:
|
||||||
image_attachments = graphene.List('extras.graphql.types.ImageAttachmentType')
|
image_attachments = graphene.List('extras.graphql.types.ImageAttachmentType')
|
||||||
|
|
||||||
def resolve_image_attachments(self, info):
|
def resolve_image_attachments(self, info):
|
||||||
return self.images.restrict(info.context.user, 'view')
|
return self.images.restrict(info.context.user, 'view')
|
||||||
|
|
||||||
|
|
||||||
|
class TagsMixin:
|
||||||
|
tags = graphene.List(graphene.String)
|
||||||
|
|
||||||
|
def resolve_tags(self, info):
|
||||||
|
return self.tags.all()
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
import graphene
|
|
||||||
from django.contrib.contenttypes.models import ContentType
|
from django.contrib.contenttypes.models import ContentType
|
||||||
from graphene.types.generic import GenericScalar
|
|
||||||
from graphene_django import DjangoObjectType
|
from graphene_django import DjangoObjectType
|
||||||
|
|
||||||
|
from extras.graphql.mixins import CustomFieldsMixin, TagsMixin
|
||||||
|
|
||||||
__all__ = (
|
__all__ = (
|
||||||
'BaseObjectType',
|
'BaseObjectType',
|
||||||
'ObjectType',
|
'ObjectType',
|
||||||
@ -27,31 +27,21 @@ class BaseObjectType(DjangoObjectType):
|
|||||||
return queryset.restrict(info.context.user, 'view')
|
return queryset.restrict(info.context.user, 'view')
|
||||||
|
|
||||||
|
|
||||||
class ObjectType(BaseObjectType):
|
class ObjectType(CustomFieldsMixin, BaseObjectType):
|
||||||
"""
|
"""
|
||||||
Extends BaseObjectType with support for custom field data.
|
Extends BaseObjectType with support for custom fields.
|
||||||
"""
|
"""
|
||||||
custom_fields = GenericScalar()
|
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
abstract = True
|
abstract = True
|
||||||
|
|
||||||
def resolve_custom_fields(self, info):
|
|
||||||
return self.custom_field_data
|
|
||||||
|
|
||||||
|
class TaggedObjectType(CustomFieldsMixin, TagsMixin, BaseObjectType):
|
||||||
class TaggedObjectType(ObjectType):
|
|
||||||
"""
|
"""
|
||||||
Extends ObjectType with support for Tags
|
Extends BaseObjectType with support for custom fields and tags
|
||||||
"""
|
"""
|
||||||
tags = graphene.List(graphene.String)
|
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
abstract = True
|
abstract = True
|
||||||
|
|
||||||
def resolve_tags(self, info):
|
|
||||||
return self.tags.all()
|
|
||||||
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# Miscellaneous types
|
# Miscellaneous types
|
||||||
|
Loading…
Reference in New Issue
Block a user