Fixes #6832: Support config context rendering under GraphQL API

This commit is contained in:
jeremystretch 2021-08-04 15:55:55 -04:00
parent 582b69de74
commit 57dc4c207f
4 changed files with 16 additions and 4 deletions

View File

@ -10,6 +10,7 @@
* [#6811](https://github.com/netbox-community/netbox/issues/6811) - Fix exception when editing users
* [#6827](https://github.com/netbox-community/netbox/issues/6827) - Fix circuit termination connection dropdown
* [#6832](https://github.com/netbox-community/netbox/issues/6832) - Support config context rendering under GraphQL API
* [#6846](https://github.com/netbox-community/netbox/issues/6846) - Form-driven REST API calls should use brief mode
* [#6871](https://github.com/netbox-community/netbox/issues/6871) - Support dynamic tag types in GraphQL API

View File

@ -1,5 +1,7 @@
from dcim import filtersets, models
from extras.graphql.mixins import ChangelogMixin, CustomFieldsMixin, ImageAttachmentsMixin, TagsMixin
from extras.graphql.mixins import (
ChangelogMixin, ConfigContextMixin, CustomFieldsMixin, ImageAttachmentsMixin, TagsMixin,
)
from ipam.graphql.mixins import IPAddressesMixin, VLANGroupsMixin
from netbox.graphql.types import BaseObjectType, OrganizationalObjectType, PrimaryObjectType
@ -132,7 +134,7 @@ class ConsoleServerPortTemplateType(ComponentTemplateObjectType):
return self.type or None
class DeviceType(ImageAttachmentsMixin, PrimaryObjectType):
class DeviceType(ConfigContextMixin, ImageAttachmentsMixin, PrimaryObjectType):
class Meta:
model = models.Device

View File

@ -3,6 +3,7 @@ from graphene.types.generic import GenericScalar
__all__ = (
'ChangelogMixin',
'ConfigContextMixin',
'CustomFieldsMixin',
'ImageAttachmentsMixin',
'JournalEntriesMixin',
@ -17,6 +18,13 @@ class ChangelogMixin:
return self.object_changes.restrict(info.context.user, 'view')
class ConfigContextMixin:
config_context = GenericScalar()
def resolve_config_context(self, info):
return self.get_config_context()
class CustomFieldsMixin:
custom_fields = GenericScalar()

View File

@ -1,7 +1,8 @@
from dcim.graphql.types import ComponentObjectType
from extras.graphql.mixins import ConfigContextMixin
from ipam.graphql.mixins import IPAddressesMixin, VLANGroupsMixin
from virtualization import filtersets, models
from netbox.graphql.types import OrganizationalObjectType, PrimaryObjectType
from virtualization import filtersets, models
__all__ = (
'ClusterType',
@ -36,7 +37,7 @@ class ClusterTypeType(OrganizationalObjectType):
filterset_class = filtersets.ClusterTypeFilterSet
class VirtualMachineType(PrimaryObjectType):
class VirtualMachineType(ConfigContextMixin, PrimaryObjectType):
class Meta:
model = models.VirtualMachine