mirror of
https://github.com/netbox-community/netbox.git
synced 2025-08-26 09:16:10 -06:00
9608 update yasg -> spectacular
This commit is contained in:
parent
a949de8d5f
commit
8dcd3eda28
@ -3,6 +3,7 @@ import decimal
|
||||
from django.contrib.contenttypes.models import ContentType
|
||||
from django.utils.translation import gettext as _
|
||||
from drf_spectacular.utils import extend_schema_field
|
||||
from drf_spectacular.types import OpenApiTypes
|
||||
from rest_framework import serializers
|
||||
from timezone_field.rest_framework import TimeZoneSerializerField
|
||||
|
||||
@ -231,6 +232,7 @@ class RackUnitSerializer(serializers.Serializer):
|
||||
occupied = serializers.BooleanField(read_only=True)
|
||||
display = serializers.SerializerMethodField(read_only=True)
|
||||
|
||||
@extend_schema_field(OpenApiTypes.STR)
|
||||
def get_display(self, obj):
|
||||
return obj['name']
|
||||
|
||||
|
@ -1,6 +1,8 @@
|
||||
import django_filters
|
||||
from django.contrib.auth.models import User
|
||||
from django.utils.translation import gettext as _
|
||||
from drf_spectacular.utils import extend_schema_field
|
||||
from drf_spectacular.types import OpenApiTypes
|
||||
|
||||
from extras.filtersets import LocalConfigContextFilterSet
|
||||
from ipam.models import ASN, L2VPN, IPAddress, VRF
|
||||
|
@ -367,6 +367,7 @@ class IPRangeAvailableIPAddressesView(AvailableIPAddressesView):
|
||||
|
||||
class AvailableVLANsView(ObjectValidationMixin, APIView):
|
||||
queryset = VLAN.objects.all()
|
||||
filterset_class = serializers.VLANSerializer # for drf-spectacular
|
||||
|
||||
@extend_schema(methods=["get"], responses={200: serializers.AvailableVLANSerializer(many=True)})
|
||||
def get(self, request, pk):
|
||||
|
@ -1,5 +1,7 @@
|
||||
from django.db.models import ManyToManyField
|
||||
from rest_framework import serializers
|
||||
from drf_spectacular.utils import extend_schema_field
|
||||
from drf_spectacular.types import OpenApiTypes
|
||||
|
||||
__all__ = (
|
||||
'BaseModelSerializer',
|
||||
@ -10,6 +12,7 @@ __all__ = (
|
||||
class BaseModelSerializer(serializers.ModelSerializer):
|
||||
display = serializers.SerializerMethodField(read_only=True)
|
||||
|
||||
@extend_schema_field(OpenApiTypes.STR)
|
||||
def get_display(self, obj):
|
||||
return str(obj)
|
||||
|
||||
|
@ -574,6 +574,10 @@ REST_FRAMEWORK = {
|
||||
#
|
||||
|
||||
SPECTACULAR_SETTINGS = {
|
||||
"TITLE": "NetBox API",
|
||||
"DESCRIPTION": "API to access NetBox",
|
||||
"LICENSE": {"name": "Apache v2 License"},
|
||||
"VERSION": VERSION,
|
||||
}
|
||||
|
||||
#
|
||||
|
@ -1,6 +1,7 @@
|
||||
from django.contrib.auth.models import Group, User
|
||||
from django.contrib.contenttypes.models import ContentType
|
||||
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})"
|
||||
|
@ -1,6 +1,8 @@
|
||||
from django.conf import settings
|
||||
from django.contrib.auth.models import Group, User
|
||||
from django.contrib.contenttypes.models import ContentType
|
||||
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, IPNetworkSerializer, SerializedPKRelatedField
|
||||
@ -47,6 +49,7 @@ class UserSerializer(ValidatedModelSerializer):
|
||||
|
||||
return user
|
||||
|
||||
@extend_schema_field(OpenApiTypes.STR)
|
||||
def get_display(self, obj):
|
||||
if full_name := obj.get_full_name():
|
||||
return f"{obj.username} ({full_name})"
|
||||
|
@ -3,6 +3,8 @@ from django import forms
|
||||
from django.conf import settings
|
||||
from django.core.exceptions import ValidationError
|
||||
from django_filters.constants import EMPTY_VALUES
|
||||
from drf_spectacular.utils import extend_schema_field
|
||||
from drf_spectacular.types import OpenApiTypes
|
||||
|
||||
|
||||
def multivalue_field_factory(field_class):
|
||||
@ -37,26 +39,32 @@ def multivalue_field_factory(field_class):
|
||||
# Filters
|
||||
#
|
||||
|
||||
@extend_schema_field(OpenApiTypes.STR)
|
||||
class MultiValueCharFilter(django_filters.MultipleChoiceFilter):
|
||||
field_class = multivalue_field_factory(forms.CharField)
|
||||
|
||||
|
||||
@extend_schema_field(OpenApiTypes.DATE)
|
||||
class MultiValueDateFilter(django_filters.MultipleChoiceFilter):
|
||||
field_class = multivalue_field_factory(forms.DateField)
|
||||
|
||||
|
||||
@extend_schema_field(OpenApiTypes.DATETIME)
|
||||
class MultiValueDateTimeFilter(django_filters.MultipleChoiceFilter):
|
||||
field_class = multivalue_field_factory(forms.DateTimeField)
|
||||
|
||||
|
||||
@extend_schema_field(OpenApiTypes.INT32)
|
||||
class MultiValueNumberFilter(django_filters.MultipleChoiceFilter):
|
||||
field_class = multivalue_field_factory(forms.IntegerField)
|
||||
|
||||
|
||||
@extend_schema_field(OpenApiTypes.DECIMAL)
|
||||
class MultiValueDecimalFilter(django_filters.MultipleChoiceFilter):
|
||||
field_class = multivalue_field_factory(forms.DecimalField)
|
||||
|
||||
|
||||
@extend_schema_field(OpenApiTypes.TIME)
|
||||
class MultiValueTimeFilter(django_filters.MultipleChoiceFilter):
|
||||
field_class = multivalue_field_factory(forms.TimeField)
|
||||
|
||||
@ -65,6 +73,7 @@ class MACAddressFilter(django_filters.CharFilter):
|
||||
pass
|
||||
|
||||
|
||||
@extend_schema_field(OpenApiTypes.STR)
|
||||
class MultiValueMACAddressFilter(django_filters.MultipleChoiceFilter):
|
||||
field_class = multivalue_field_factory(forms.CharField)
|
||||
|
||||
@ -75,6 +84,7 @@ class MultiValueMACAddressFilter(django_filters.MultipleChoiceFilter):
|
||||
return qs.none()
|
||||
|
||||
|
||||
@extend_schema_field(OpenApiTypes.STR)
|
||||
class MultiValueWWNFilter(django_filters.MultipleChoiceFilter):
|
||||
field_class = multivalue_field_factory(forms.CharField)
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user