mirror of
https://github.com/netbox-community/netbox.git
synced 2025-07-22 12:06:53 -06:00
Refactor FieldChoicesViewSet; add Interface.type to virtualization _choices endpoint
This commit is contained in:
parent
deec10efe7
commit
49f027fae7
@ -18,8 +18,8 @@ from . import serializers
|
|||||||
|
|
||||||
class CircuitsFieldChoicesViewSet(FieldChoicesViewSet):
|
class CircuitsFieldChoicesViewSet(FieldChoicesViewSet):
|
||||||
fields = (
|
fields = (
|
||||||
(Circuit, ['status']),
|
(serializers.CircuitSerializer, ['status']),
|
||||||
(CircuitTermination, ['term_side']),
|
(serializers.CircuitTerminationSerializer, ['term_side']),
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@ -2,8 +2,8 @@ from collections import OrderedDict
|
|||||||
|
|
||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
from django.db.models import Count, F
|
from django.db.models import Count, F
|
||||||
from django.http import HttpResponseForbidden, HttpResponseBadRequest, HttpResponse
|
from django.http import HttpResponseForbidden, HttpResponse
|
||||||
from django.shortcuts import get_object_or_404, reverse
|
from django.shortcuts import get_object_or_404
|
||||||
from drf_yasg import openapi
|
from drf_yasg import openapi
|
||||||
from drf_yasg.openapi import Parameter
|
from drf_yasg.openapi import Parameter
|
||||||
from drf_yasg.utils import swagger_auto_schema
|
from drf_yasg.utils import swagger_auto_schema
|
||||||
@ -13,7 +13,7 @@ from rest_framework.response import Response
|
|||||||
from rest_framework.viewsets import GenericViewSet, ViewSet
|
from rest_framework.viewsets import GenericViewSet, ViewSet
|
||||||
|
|
||||||
from circuits.models import Circuit
|
from circuits.models import Circuit
|
||||||
from dcim import constants, filters
|
from dcim import filters
|
||||||
from dcim.models import (
|
from dcim.models import (
|
||||||
Cable, ConsolePort, ConsolePortTemplate, ConsoleServerPort, ConsoleServerPortTemplate, Device, DeviceBay,
|
Cable, ConsolePort, ConsolePortTemplate, ConsoleServerPort, ConsoleServerPortTemplate, Device, DeviceBay,
|
||||||
DeviceBayTemplate, DeviceRole, DeviceType, FrontPort, FrontPortTemplate, Interface, InterfaceTemplate,
|
DeviceBayTemplate, DeviceRole, DeviceType, FrontPort, FrontPortTemplate, Interface, InterfaceTemplate,
|
||||||
@ -28,7 +28,6 @@ from ipam.models import Prefix, VLAN
|
|||||||
from utilities.api import (
|
from utilities.api import (
|
||||||
get_serializer_for_model, IsAuthenticatedOrLoginNotRequired, FieldChoicesViewSet, ModelViewSet, ServiceUnavailable,
|
get_serializer_for_model, IsAuthenticatedOrLoginNotRequired, FieldChoicesViewSet, ModelViewSet, ServiceUnavailable,
|
||||||
)
|
)
|
||||||
from utilities.custom_inspectors import NullablePaginatorInspector
|
|
||||||
from utilities.utils import get_subquery
|
from utilities.utils import get_subquery
|
||||||
from virtualization.models import VirtualMachine
|
from virtualization.models import VirtualMachine
|
||||||
from . import serializers
|
from . import serializers
|
||||||
@ -41,26 +40,26 @@ from .exceptions import MissingFilterException
|
|||||||
|
|
||||||
class DCIMFieldChoicesViewSet(FieldChoicesViewSet):
|
class DCIMFieldChoicesViewSet(FieldChoicesViewSet):
|
||||||
fields = (
|
fields = (
|
||||||
(Cable, ['length_unit', 'status', 'termination_a_type', 'termination_b_type', 'type']),
|
(serializers.CableSerializer, ['length_unit', 'status', 'termination_a_type', 'termination_b_type', 'type']),
|
||||||
(ConsolePort, ['type', 'connection_status']),
|
(serializers.ConsolePortSerializer, ['type', 'connection_status']),
|
||||||
(ConsolePortTemplate, ['type']),
|
(serializers.ConsolePortTemplateSerializer, ['type']),
|
||||||
(ConsoleServerPort, ['type']),
|
(serializers.ConsoleServerPortSerializer, ['type']),
|
||||||
(ConsoleServerPortTemplate, ['type']),
|
(serializers.ConsoleServerPortTemplateSerializer, ['type']),
|
||||||
(Device, ['face', 'status']),
|
(serializers.DeviceSerializer, ['face', 'status']),
|
||||||
(DeviceType, ['subdevice_role']),
|
(serializers.DeviceTypeSerializer, ['subdevice_role']),
|
||||||
(FrontPort, ['type']),
|
(serializers.FrontPortSerializer, ['type']),
|
||||||
(FrontPortTemplate, ['type']),
|
(serializers.FrontPortTemplateSerializer, ['type']),
|
||||||
(Interface, ['type', 'mode']),
|
(serializers.InterfaceSerializer, ['type', 'mode']),
|
||||||
(InterfaceTemplate, ['type']),
|
(serializers.InterfaceTemplateSerializer, ['type']),
|
||||||
(PowerFeed, ['phase', 'status', 'supply', 'type']),
|
(serializers.PowerFeedSerializer, ['phase', 'status', 'supply', 'type']),
|
||||||
(PowerOutlet, ['type', 'feed_leg']),
|
(serializers.PowerOutletSerializer, ['type', 'feed_leg']),
|
||||||
(PowerOutletTemplate, ['type', 'feed_leg']),
|
(serializers.PowerOutletTemplateSerializer, ['type', 'feed_leg']),
|
||||||
(PowerPort, ['type', 'connection_status']),
|
(serializers.PowerPortSerializer, ['type', 'connection_status']),
|
||||||
(PowerPortTemplate, ['type']),
|
(serializers.PowerPortTemplateSerializer, ['type']),
|
||||||
(Rack, ['outer_unit', 'status', 'type', 'width']),
|
(serializers.RackSerializer, ['outer_unit', 'status', 'type', 'width']),
|
||||||
(RearPort, ['type']),
|
(serializers.RearPortSerializer, ['type']),
|
||||||
(RearPortTemplate, ['type']),
|
(serializers.RearPortTemplateSerializer, ['type']),
|
||||||
(Site, ['status']),
|
(serializers.SiteSerializer, ['status']),
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@ -25,9 +25,9 @@ from . import serializers
|
|||||||
|
|
||||||
class ExtrasFieldChoicesViewSet(FieldChoicesViewSet):
|
class ExtrasFieldChoicesViewSet(FieldChoicesViewSet):
|
||||||
fields = (
|
fields = (
|
||||||
(ExportTemplate, ['template_language']),
|
(serializers.ExportTemplateSerializer, ['template_language']),
|
||||||
(Graph, ['type', 'template_language']),
|
(serializers.GraphSerializer, ['type', 'template_language']),
|
||||||
(ObjectChange, ['action']),
|
(serializers.ObjectChangeSerializer, ['action']),
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@ -20,11 +20,11 @@ from . import serializers
|
|||||||
|
|
||||||
class IPAMFieldChoicesViewSet(FieldChoicesViewSet):
|
class IPAMFieldChoicesViewSet(FieldChoicesViewSet):
|
||||||
fields = (
|
fields = (
|
||||||
(Aggregate, ['family']),
|
(serializers.AggregateSerializer, ['family']),
|
||||||
(Prefix, ['family', 'status']),
|
(serializers.PrefixSerializer, ['family', 'status']),
|
||||||
(IPAddress, ['family', 'status', 'role']),
|
(serializers.IPAddressSerializer, ['family', 'status', 'role']),
|
||||||
(VLAN, ['status']),
|
(serializers.VLANSerializer, ['status']),
|
||||||
(Service, ['protocol']),
|
(serializers.ServiceSerializer, ['protocol']),
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@ -329,13 +329,12 @@ class FieldChoicesViewSet(ViewSet):
|
|||||||
|
|
||||||
# Compile a dict of all fields in this view
|
# Compile a dict of all fields in this view
|
||||||
self._fields = OrderedDict()
|
self._fields = OrderedDict()
|
||||||
for cls, field_list in self.fields:
|
for serializer_class, field_list in self.fields:
|
||||||
for field_name in field_list:
|
for field_name in field_list:
|
||||||
|
|
||||||
model_name = cls._meta.verbose_name.lower().replace(' ', '-')
|
model_name = serializer_class.Meta.model._meta.verbose_name
|
||||||
key = ':'.join([model_name, field_name])
|
key = ':'.join([model_name.lower().replace(' ', '-'), field_name])
|
||||||
|
serializer = serializer_class()
|
||||||
serializer = get_serializer_for_model(cls)()
|
|
||||||
choices = []
|
choices = []
|
||||||
|
|
||||||
for k, v in serializer.get_fields()[field_name].choices.items():
|
for k, v in serializer.get_fields()[field_name].choices.items():
|
||||||
|
@ -15,7 +15,8 @@ from . import serializers
|
|||||||
|
|
||||||
class VirtualizationFieldChoicesViewSet(FieldChoicesViewSet):
|
class VirtualizationFieldChoicesViewSet(FieldChoicesViewSet):
|
||||||
fields = (
|
fields = (
|
||||||
(VirtualMachine, ['status']),
|
(serializers.VirtualMachineSerializer, ['status']),
|
||||||
|
(serializers.InterfaceSerializer, ['type']),
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user