diff --git a/netbox/extras/api/serializers.py b/netbox/extras/api/serializers.py index 1d956bb91..dc903a0ab 100644 --- a/netbox/extras/api/serializers.py +++ b/netbox/extras/api/serializers.py @@ -5,9 +5,9 @@ from rest_framework import serializers from dcim.api.nested_serializers import ( NestedDeviceSerializer, NestedDeviceRoleSerializer, NestedPlatformSerializer, NestedRackSerializer, - NestedRegionSerializer, NestedSiteSerializer, + NestedRegionSerializer, NestedSiteSerializer, NestedSiteGroupSerializer, ) -from dcim.models import Device, DeviceRole, Platform, Rack, Region, Site +from dcim.models import Device, DeviceRole, Platform, Rack, Region, Site, SiteGroup from extras.choices import * from extras.models import ( ConfigContext, CustomField, ExportTemplate, ImageAttachment, ObjectChange, JobResult, Tag, @@ -166,6 +166,12 @@ class ConfigContextSerializer(ValidatedModelSerializer): required=False, many=True ) + site_groups = SerializedPKRelatedField( + queryset=SiteGroup.objects.all(), + serializer=NestedSiteGroupSerializer, + required=False, + many=True + ) sites = SerializedPKRelatedField( queryset=Site.objects.all(), serializer=NestedSiteSerializer, @@ -218,8 +224,9 @@ class ConfigContextSerializer(ValidatedModelSerializer): class Meta: model = ConfigContext fields = [ - 'id', 'url', 'name', 'weight', 'description', 'is_active', 'regions', 'sites', 'roles', 'platforms', - 'cluster_groups', 'clusters', 'tenant_groups', 'tenants', 'tags', 'data', 'created', 'last_updated', + 'id', 'url', 'name', 'weight', 'description', 'is_active', 'regions', 'site_groups', 'sites', 'roles', + 'platforms', 'cluster_groups', 'clusters', 'tenant_groups', 'tenants', 'tags', 'data', 'created', + 'last_updated', ] diff --git a/netbox/extras/api/views.py b/netbox/extras/api/views.py index 1067ac0d3..b46c2367b 100644 --- a/netbox/extras/api/views.py +++ b/netbox/extras/api/views.py @@ -124,7 +124,7 @@ class ImageAttachmentViewSet(ModelViewSet): class ConfigContextViewSet(ModelViewSet): queryset = ConfigContext.objects.prefetch_related( - 'regions', 'sites', 'roles', 'platforms', 'tenant_groups', 'tenants', + 'regions', 'site_groups', 'sites', 'roles', 'platforms', 'tenant_groups', 'tenants', ) serializer_class = serializers.ConfigContextSerializer filterset_class = filters.ConfigContextFilterSet diff --git a/netbox/templates/extras/configcontext.html b/netbox/templates/extras/configcontext.html index 015ccb35d..7ece11b2e 100644 --- a/netbox/templates/extras/configcontext.html +++ b/netbox/templates/extras/configcontext.html @@ -66,6 +66,20 @@ {% endif %} + + Site Groups + + {% if object.site_groups.all %} + + {% else %} + None + {% endif %} + + Sites diff --git a/netbox/templates/extras/configcontext_edit.html b/netbox/templates/extras/configcontext_edit.html index 08e92d258..d0fe66a3a 100644 --- a/netbox/templates/extras/configcontext_edit.html +++ b/netbox/templates/extras/configcontext_edit.html @@ -15,6 +15,7 @@
Assignment
{% render_field form.regions %} + {% render_field form.site_groups %} {% render_field form.sites %} {% render_field form.roles %} {% render_field form.platforms %}