Closes #17143: Deprecate the use of dedicated nested API serializers

This commit is contained in:
Jeremy Stretch
2024-08-14 15:26:16 -04:00
parent 234b4027b0
commit e3d681be54
40 changed files with 345 additions and 217 deletions

View File

@@ -1,7 +1,7 @@
from drf_spectacular.utils import extend_schema_serializer
from rest_framework import serializers
import warnings
from netbox.api.serializers import WritableNestedSerializer
from serializers_.nested import NestedContactGroupSerializer, NestedTenantGroupSerializer
from tenancy.models import *
__all__ = [
@@ -13,23 +13,17 @@ __all__ = [
'NestedTenantSerializer',
]
# TODO: Remove in v4.2
warnings.warn(
f"Dedicated nested serializers will be removed in NetBox v4.2. Use Serializer(nested=True) instead.",
DeprecationWarning
)
#
# Tenants
#
@extend_schema_serializer(
exclude_fields=('tenant_count',),
)
class NestedTenantGroupSerializer(WritableNestedSerializer):
tenant_count = serializers.IntegerField(read_only=True)
_depth = serializers.IntegerField(source='level', read_only=True)
class Meta:
model = TenantGroup
fields = ['id', 'url', 'display_url', 'display', 'name', 'slug', 'tenant_count', '_depth']
class NestedTenantSerializer(WritableNestedSerializer):
class Meta:
@@ -41,18 +35,6 @@ class NestedTenantSerializer(WritableNestedSerializer):
# Contacts
#
@extend_schema_serializer(
exclude_fields=('contact_count',),
)
class NestedContactGroupSerializer(WritableNestedSerializer):
contact_count = serializers.IntegerField(read_only=True)
_depth = serializers.IntegerField(source='level', read_only=True)
class Meta:
model = ContactGroup
fields = ['id', 'url', 'display_url', 'display', 'name', 'slug', 'contact_count', '_depth']
class NestedContactRoleSerializer(WritableNestedSerializer):
class Meta:

View File

@@ -1,3 +1,2 @@
from .serializers_.tenants import *
from .serializers_.contacts import *
from .nested_serializers import *

View File

@@ -8,7 +8,7 @@ from netbox.api.serializers import NestedGroupModelSerializer, NetBoxModelSerial
from tenancy.choices import ContactPriorityChoices
from tenancy.models import ContactAssignment, Contact, ContactGroup, ContactRole
from utilities.api import get_serializer_for_model
from ..nested_serializers import *
from .nested import NestedContactGroupSerializer
__all__ = (
'ContactAssignmentSerializer',

View File

@@ -0,0 +1,34 @@
from drf_spectacular.utils import extend_schema_serializer
from rest_framework import serializers
from netbox.api.serializers import WritableNestedSerializer
from tenancy import models
__all__ = (
'NestedContactGroupSerializer',
'NestedTenantGroupSerializer',
)
@extend_schema_serializer(
exclude_fields=('contact_count',),
)
class NestedContactGroupSerializer(WritableNestedSerializer):
contact_count = serializers.IntegerField(read_only=True)
_depth = serializers.IntegerField(source='level', read_only=True)
class Meta:
model = models.ContactGroup
fields = ['id', 'url', 'display_url', 'display', 'name', 'slug', 'contact_count', '_depth']
@extend_schema_serializer(
exclude_fields=('tenant_count',),
)
class NestedTenantGroupSerializer(WritableNestedSerializer):
tenant_count = serializers.IntegerField(read_only=True)
_depth = serializers.IntegerField(source='level', read_only=True)
class Meta:
model = models.TenantGroup
fields = ['id', 'url', 'display_url', 'display', 'name', 'slug', 'tenant_count', '_depth']

View File

@@ -3,7 +3,7 @@ from rest_framework import serializers
from netbox.api.fields import RelatedObjectCountField
from netbox.api.serializers import NestedGroupModelSerializer, NetBoxModelSerializer
from tenancy.models import Tenant, TenantGroup
from ..nested_serializers import *
from .nested import NestedTenantGroupSerializer
__all__ = (
'TenantGroupSerializer',