Finish application of site groups to config context

This commit is contained in:
Jeremy Stretch 2021-03-08 13:17:22 -05:00
parent d8d6ff6249
commit bbbc3f55e3
4 changed files with 27 additions and 5 deletions

View File

@ -5,9 +5,9 @@ from rest_framework import serializers
from dcim.api.nested_serializers import ( from dcim.api.nested_serializers import (
NestedDeviceSerializer, NestedDeviceRoleSerializer, NestedPlatformSerializer, NestedRackSerializer, 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.choices import *
from extras.models import ( from extras.models import (
ConfigContext, CustomField, ExportTemplate, ImageAttachment, ObjectChange, JobResult, Tag, ConfigContext, CustomField, ExportTemplate, ImageAttachment, ObjectChange, JobResult, Tag,
@ -166,6 +166,12 @@ class ConfigContextSerializer(ValidatedModelSerializer):
required=False, required=False,
many=True many=True
) )
site_groups = SerializedPKRelatedField(
queryset=SiteGroup.objects.all(),
serializer=NestedSiteGroupSerializer,
required=False,
many=True
)
sites = SerializedPKRelatedField( sites = SerializedPKRelatedField(
queryset=Site.objects.all(), queryset=Site.objects.all(),
serializer=NestedSiteSerializer, serializer=NestedSiteSerializer,
@ -218,8 +224,9 @@ class ConfigContextSerializer(ValidatedModelSerializer):
class Meta: class Meta:
model = ConfigContext model = ConfigContext
fields = [ fields = [
'id', 'url', 'name', 'weight', 'description', 'is_active', 'regions', 'sites', 'roles', 'platforms', 'id', 'url', 'name', 'weight', 'description', 'is_active', 'regions', 'site_groups', 'sites', 'roles',
'cluster_groups', 'clusters', 'tenant_groups', 'tenants', 'tags', 'data', 'created', 'last_updated', 'platforms', 'cluster_groups', 'clusters', 'tenant_groups', 'tenants', 'tags', 'data', 'created',
'last_updated',
] ]

View File

@ -124,7 +124,7 @@ class ImageAttachmentViewSet(ModelViewSet):
class ConfigContextViewSet(ModelViewSet): class ConfigContextViewSet(ModelViewSet):
queryset = ConfigContext.objects.prefetch_related( 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 serializer_class = serializers.ConfigContextSerializer
filterset_class = filters.ConfigContextFilterSet filterset_class = filters.ConfigContextFilterSet

View File

@ -66,6 +66,20 @@
{% endif %} {% endif %}
</td> </td>
</tr> </tr>
<tr>
<td>Site Groups</td>
<td>
{% if object.site_groups.all %}
<ul>
{% for sitegroup in object.site_groups.all %}
<li><a href="{{ sitegroup.get_absolute_url }}">{{ sitegroup }}</a></li>
{% endfor %}
</ul>
{% else %}
<span class="text-muted">None</span>
{% endif %}
</td>
</tr>
<tr> <tr>
<td>Sites</td> <td>Sites</td>
<td> <td>

View File

@ -15,6 +15,7 @@
<div class="panel-heading"><strong>Assignment</strong></div> <div class="panel-heading"><strong>Assignment</strong></div>
<div class="panel-body"> <div class="panel-body">
{% render_field form.regions %} {% render_field form.regions %}
{% render_field form.site_groups %}
{% render_field form.sites %} {% render_field form.sites %}
{% render_field form.roles %} {% render_field form.roles %}
{% render_field form.platforms %} {% render_field form.platforms %}