1
0
mirror of https://github.com/netbox-community/netbox.git synced 2024-05-10 07:54:54 +00:00

Closes #9608: Move from drf-yasg to spectacular

Co-authored-by: arthanson <worldnomad@gmail.com>
Co-authored-by: jeremystretch <jstretch@netboxlabs.com>
This commit is contained in:
Arthur Hanson
2023-03-30 11:32:59 -07:00
committed by GitHub
parent 1be626e5ee
commit ecd0c56554
35 changed files with 514 additions and 340 deletions

View File

@ -1,6 +1,7 @@
from django.contrib.auth.models import Group, User
from django.contrib.contenttypes.models import ContentType
from drf_yasg.utils import swagger_serializer_method
from drf_spectacular.utils import extend_schema_field
from drf_spectacular.types import OpenApiTypes
from rest_framework import serializers
from netbox.api.fields import ContentTypeField
@ -30,6 +31,7 @@ class NestedUserSerializer(WritableNestedSerializer):
model = User
fields = ['id', 'url', 'display', 'username']
@extend_schema_field(OpenApiTypes.STR)
def get_display(self, obj):
if full_name := obj.get_full_name():
return f"{obj.username} ({full_name})"
@ -57,10 +59,10 @@ class NestedObjectPermissionSerializer(WritableNestedSerializer):
model = ObjectPermission
fields = ['id', 'url', 'display', 'name', 'enabled', 'object_types', 'groups', 'users', 'actions']
@swagger_serializer_method(serializer_or_field=serializers.ListField)
@extend_schema_field(serializers.ListField)
def get_groups(self, obj):
return [g.name for g in obj.groups.all()]
@swagger_serializer_method(serializer_or_field=serializers.ListField)
@extend_schema_field(serializers.ListField)
def get_users(self, obj):
return [u.username for u in obj.users.all()]