mirror of
https://github.com/netbox-community/netbox.git
synced 2024-05-10 07:54:54 +00:00
Added API endpoints for device type components
This commit is contained in:
@ -2,10 +2,10 @@ from rest_framework import serializers
|
|||||||
|
|
||||||
from ipam.models import IPAddress
|
from ipam.models import IPAddress
|
||||||
from dcim.models import (
|
from dcim.models import (
|
||||||
ConsolePort, ConsolePortTemplate, ConsoleServerPort, ConsoleServerPortTemplate, Device, DeviceBay, DeviceType,
|
ConsolePort, ConsolePortTemplate, ConsoleServerPort, ConsoleServerPortTemplate, Device, DeviceBay,
|
||||||
DeviceRole, Interface, InterfaceConnection, InterfaceTemplate, Manufacturer, Module, Platform, PowerOutlet,
|
DeviceBayTemplate, DeviceType, DeviceRole, Interface, InterfaceConnection, InterfaceTemplate, Manufacturer, Module,
|
||||||
PowerOutletTemplate, PowerPort, PowerPortTemplate, Rack, RackGroup, RackRole, Site, SUBDEVICE_ROLE_CHILD,
|
Platform, PowerOutlet, PowerOutletTemplate, PowerPort, PowerPortTemplate, Rack, RackGroup, RackRole, Site,
|
||||||
SUBDEVICE_ROLE_PARENT,
|
SUBDEVICE_ROLE_CHILD, SUBDEVICE_ROLE_PARENT,
|
||||||
)
|
)
|
||||||
from extras.api.serializers import CustomFieldValueSerializer
|
from extras.api.serializers import CustomFieldValueSerializer
|
||||||
from tenancy.api.serializers import NestedTenantSerializer
|
from tenancy.api.serializers import NestedTenantSerializer
|
||||||
@ -194,46 +194,118 @@ class WritableDeviceTypeSerializer(serializers.ModelSerializer):
|
|||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
|
#
|
||||||
|
# Console port templates
|
||||||
|
#
|
||||||
|
|
||||||
class ConsolePortTemplateSerializer(serializers.ModelSerializer):
|
class ConsolePortTemplateSerializer(serializers.ModelSerializer):
|
||||||
|
device_type = NestedDeviceTypeSerializer()
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
model = ConsolePortTemplate
|
model = ConsolePortTemplate
|
||||||
fields = ['id', 'name']
|
fields = ['id', 'device_type', 'name']
|
||||||
|
|
||||||
|
|
||||||
|
class WritableConsolePortTemplateSerializer(serializers.ModelSerializer):
|
||||||
|
|
||||||
|
class Meta:
|
||||||
|
model = ConsolePortTemplate
|
||||||
|
fields = ['id', 'device_type', 'name']
|
||||||
|
|
||||||
|
|
||||||
|
#
|
||||||
|
# Console server port templates
|
||||||
|
#
|
||||||
|
|
||||||
class ConsoleServerPortTemplateSerializer(serializers.ModelSerializer):
|
class ConsoleServerPortTemplateSerializer(serializers.ModelSerializer):
|
||||||
|
device_type = NestedDeviceTypeSerializer()
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
model = ConsoleServerPortTemplate
|
model = ConsoleServerPortTemplate
|
||||||
fields = ['id', 'name']
|
fields = ['id', 'device_type', 'name']
|
||||||
|
|
||||||
|
|
||||||
|
class WritableConsoleServerPortTemplateSerializer(serializers.ModelSerializer):
|
||||||
|
|
||||||
|
class Meta:
|
||||||
|
model = ConsoleServerPortTemplate
|
||||||
|
fields = ['id', 'device_type', 'name']
|
||||||
|
|
||||||
|
|
||||||
|
#
|
||||||
|
# Power port templates
|
||||||
|
#
|
||||||
|
|
||||||
class PowerPortTemplateSerializer(serializers.ModelSerializer):
|
class PowerPortTemplateSerializer(serializers.ModelSerializer):
|
||||||
|
device_type = NestedDeviceTypeSerializer()
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
model = PowerPortTemplate
|
model = PowerPortTemplate
|
||||||
fields = ['id', 'name']
|
fields = ['id', 'device_type', 'name']
|
||||||
|
|
||||||
|
|
||||||
|
class WritablePowerPortTemplateSerializer(serializers.ModelSerializer):
|
||||||
|
|
||||||
|
class Meta:
|
||||||
|
model = PowerPortTemplate
|
||||||
|
fields = ['id', 'device_type', 'name']
|
||||||
|
|
||||||
|
|
||||||
|
#
|
||||||
|
# Power outlet templates
|
||||||
|
#
|
||||||
|
|
||||||
class PowerOutletTemplateSerializer(serializers.ModelSerializer):
|
class PowerOutletTemplateSerializer(serializers.ModelSerializer):
|
||||||
|
device_type = NestedDeviceTypeSerializer()
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
model = PowerOutletTemplate
|
model = PowerOutletTemplate
|
||||||
fields = ['id', 'name']
|
fields = ['id', 'device_type', 'name']
|
||||||
|
|
||||||
|
|
||||||
|
class WritablePowerOutletTemplateSerializer(serializers.ModelSerializer):
|
||||||
|
|
||||||
|
class Meta:
|
||||||
|
model = PowerOutletTemplate
|
||||||
|
fields = ['id', 'device_type', 'name']
|
||||||
|
|
||||||
|
|
||||||
|
#
|
||||||
|
# Interface templates
|
||||||
|
#
|
||||||
|
|
||||||
class InterfaceTemplateSerializer(serializers.ModelSerializer):
|
class InterfaceTemplateSerializer(serializers.ModelSerializer):
|
||||||
|
device_type = NestedDeviceTypeSerializer()
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
model = InterfaceTemplate
|
model = InterfaceTemplate
|
||||||
fields = ['id', 'name', 'form_factor', 'mgmt_only']
|
fields = ['id', 'device_type', 'name', 'form_factor', 'mgmt_only']
|
||||||
|
|
||||||
|
|
||||||
class DeviceBayTemplateSerializer(serializers.ModelSerializer):
|
class WritableInterfaceTemplateSerializer(serializers.ModelSerializer):
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
model = DeviceBay
|
model = InterfaceTemplate
|
||||||
fields = ['id', 'name',]
|
fields = ['id', 'device_type', 'name', 'form_factor', 'mgmt_only']
|
||||||
|
|
||||||
|
|
||||||
|
#
|
||||||
|
# Device bay templates
|
||||||
|
#
|
||||||
|
|
||||||
|
class DeviceBayTemplateSerializer(serializers.ModelSerializer):
|
||||||
|
device_type = NestedDeviceTypeSerializer()
|
||||||
|
|
||||||
|
class Meta:
|
||||||
|
model = DeviceBayTemplate
|
||||||
|
fields = ['id', 'device_type', 'name']
|
||||||
|
|
||||||
|
|
||||||
|
class WritableDeviceBayTemplateSerializer(serializers.ModelSerializer):
|
||||||
|
|
||||||
|
class Meta:
|
||||||
|
model = DeviceBayTemplate
|
||||||
|
fields = ['id', 'device_type', 'name']
|
||||||
|
|
||||||
|
|
||||||
#
|
#
|
||||||
@ -302,7 +374,7 @@ class DeviceSerializer(serializers.ModelSerializer):
|
|||||||
class Meta:
|
class Meta:
|
||||||
model = Device
|
model = Device
|
||||||
fields = [
|
fields = [
|
||||||
'id', 'name', 'display_name', 'device_type', 'device_role', 'tenant', 'platform', 'serial', 'asset_tag',
|
'id', 'name', 'display_name', 'device_type', 'device_role', 'tenant', 'platform', 'serial', 'asset_tag',
|
||||||
'rack', 'position', 'face', 'parent_device', 'status', 'primary_ip', 'primary_ip4', 'primary_ip6',
|
'rack', 'position', 'face', 'parent_device', 'status', 'primary_ip', 'primary_ip4', 'primary_ip6',
|
||||||
'comments', 'custom_field_values',
|
'comments', 'custom_field_values',
|
||||||
]
|
]
|
||||||
@ -335,8 +407,8 @@ class WritableDeviceSerializer(serializers.ModelSerializer):
|
|||||||
class Meta:
|
class Meta:
|
||||||
model = Device
|
model = Device
|
||||||
fields = [
|
fields = [
|
||||||
'id', 'name', 'device_type', 'device_role', 'tenant', 'platform', 'serial', 'asset_tag', 'rack',
|
'id', 'name', 'device_type', 'device_role', 'tenant', 'platform', 'serial', 'asset_tag', 'rack', 'position',
|
||||||
'position', 'face', 'status', 'primary_ip4', 'primary_ip6', 'comments',
|
'face', 'status', 'primary_ip4', 'primary_ip6', 'comments',
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
|
@ -21,7 +21,13 @@ router.register(r'racks', views.RackViewSet)
|
|||||||
router.register(r'manufacturers', views.ManufacturerViewSet)
|
router.register(r'manufacturers', views.ManufacturerViewSet)
|
||||||
router.register(r'device-types', views.DeviceTypeViewSet)
|
router.register(r'device-types', views.DeviceTypeViewSet)
|
||||||
|
|
||||||
# TODO: Device type components
|
# Device type components
|
||||||
|
router.register(r'console-port-templates', views.ConsolePortTemplateViewSet)
|
||||||
|
router.register(r'console-server-port-templates', views.ConsoleServerPortTemplateViewSet)
|
||||||
|
router.register(r'power-port-templates', views.PowerPortTemplateViewSet)
|
||||||
|
router.register(r'power-outlet-templates', views.PowerOutletTemplateViewSet)
|
||||||
|
router.register(r'interface-templates', views.InterfaceTemplateViewSet)
|
||||||
|
router.register(r'device-bay-templates', views.DeviceBayTemplateViewSet)
|
||||||
|
|
||||||
# Devices
|
# Devices
|
||||||
router.register(r'device-roles', views.DeviceRoleViewSet)
|
router.register(r'device-roles', views.DeviceRoleViewSet)
|
||||||
|
@ -10,8 +10,9 @@ from django.http import Http404
|
|||||||
from django.shortcuts import get_object_or_404
|
from django.shortcuts import get_object_or_404
|
||||||
|
|
||||||
from dcim.models import (
|
from dcim.models import (
|
||||||
ConsolePort, ConsoleServerPort, Device, DeviceBay, DeviceRole, DeviceType, Interface, InterfaceConnection,
|
ConsolePort, ConsolePortTemplate, ConsoleServerPort, ConsoleServerPortTemplate, Device, DeviceBay,
|
||||||
Manufacturer, Module, Platform, PowerOutlet, PowerPort, Rack, RackGroup, RackRole, Site,
|
DeviceBayTemplate, DeviceRole, DeviceType, Interface, InterfaceConnection, InterfaceTemplate, Manufacturer, Module,
|
||||||
|
Platform, PowerOutlet, PowerOutletTemplate, PowerPort, PowerPortTemplate, Rack, RackGroup, RackRole, Site,
|
||||||
)
|
)
|
||||||
from dcim import filters
|
from dcim import filters
|
||||||
from extras.api.renderers import BINDZoneRenderer, FlatJSONRenderer
|
from extras.api.renderers import BINDZoneRenderer, FlatJSONRenderer
|
||||||
@ -106,7 +107,7 @@ class ManufacturerViewSet(ModelViewSet):
|
|||||||
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# Device Types
|
# Device types
|
||||||
#
|
#
|
||||||
|
|
||||||
class DeviceTypeViewSet(WritableSerializerMixin, CustomFieldModelViewSet):
|
class DeviceTypeViewSet(WritableSerializerMixin, CustomFieldModelViewSet):
|
||||||
@ -116,7 +117,53 @@ class DeviceTypeViewSet(WritableSerializerMixin, CustomFieldModelViewSet):
|
|||||||
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# Device Roles
|
# Device type components
|
||||||
|
#
|
||||||
|
|
||||||
|
class ConsolePortTemplateViewSet(WritableSerializerMixin, ModelViewSet):
|
||||||
|
queryset = ConsolePortTemplate.objects.select_related('device_type__manufacturer')
|
||||||
|
serializer_class = serializers.ConsolePortTemplateSerializer
|
||||||
|
write_serializer_class = serializers.WritableConsolePortTemplateSerializer
|
||||||
|
filter_class = filters.ConsolePortTemplateFilter
|
||||||
|
|
||||||
|
|
||||||
|
class ConsoleServerPortTemplateViewSet(WritableSerializerMixin, ModelViewSet):
|
||||||
|
queryset = ConsoleServerPortTemplate.objects.select_related('device_type__manufacturer')
|
||||||
|
serializer_class = serializers.ConsoleServerPortTemplateSerializer
|
||||||
|
write_serializer_class = serializers.WritableConsoleServerPortTemplateSerializer
|
||||||
|
filter_class = filters.ConsoleServerPortTemplateFilter
|
||||||
|
|
||||||
|
|
||||||
|
class PowerPortTemplateViewSet(WritableSerializerMixin, ModelViewSet):
|
||||||
|
queryset = PowerPortTemplate.objects.select_related('device_type__manufacturer')
|
||||||
|
serializer_class = serializers.PowerPortTemplateSerializer
|
||||||
|
write_serializer_class = serializers.WritablePowerPortTemplateSerializer
|
||||||
|
filter_class = filters.PowerPortTemplateFilter
|
||||||
|
|
||||||
|
|
||||||
|
class PowerOutletTemplateViewSet(WritableSerializerMixin, ModelViewSet):
|
||||||
|
queryset = PowerOutletTemplate.objects.select_related('device_type__manufacturer')
|
||||||
|
serializer_class = serializers.PowerOutletTemplateSerializer
|
||||||
|
write_serializer_class = serializers.WritablePowerOutletTemplateSerializer
|
||||||
|
filter_class = filters.PowerOutletTemplateFilter
|
||||||
|
|
||||||
|
|
||||||
|
class InterfaceTemplateViewSet(WritableSerializerMixin, ModelViewSet):
|
||||||
|
queryset = InterfaceTemplate.objects.select_related('device_type__manufacturer')
|
||||||
|
serializer_class = serializers.InterfaceTemplateSerializer
|
||||||
|
write_serializer_class = serializers.WritableInterfaceTemplateSerializer
|
||||||
|
filter_class = filters.InterfaceTemplateFilter
|
||||||
|
|
||||||
|
|
||||||
|
class DeviceBayTemplateViewSet(WritableSerializerMixin, ModelViewSet):
|
||||||
|
queryset = DeviceBayTemplate.objects.select_related('device_type__manufacturer')
|
||||||
|
serializer_class = serializers.DeviceBayTemplateSerializer
|
||||||
|
write_serializer_class = serializers.WritableDeviceBayTemplateSerializer
|
||||||
|
filter_class = filters.DeviceBayTemplateFilter
|
||||||
|
|
||||||
|
|
||||||
|
#
|
||||||
|
# Device roles
|
||||||
#
|
#
|
||||||
|
|
||||||
class DeviceRoleViewSet(ModelViewSet):
|
class DeviceRoleViewSet(ModelViewSet):
|
||||||
@ -178,35 +225,35 @@ class DeviceViewSet(WritableSerializerMixin, CustomFieldModelViewSet):
|
|||||||
class ConsolePortViewSet(WritableSerializerMixin, ModelViewSet):
|
class ConsolePortViewSet(WritableSerializerMixin, ModelViewSet):
|
||||||
queryset = ConsolePort.objects.select_related('device', 'cs_port__device')
|
queryset = ConsolePort.objects.select_related('device', 'cs_port__device')
|
||||||
serializer_class = serializers.ConsolePortSerializer
|
serializer_class = serializers.ConsolePortSerializer
|
||||||
write_serializer_class= serializers.WritableConsolePortSerializer
|
write_serializer_class = serializers.WritableConsolePortSerializer
|
||||||
filter_class = filters.ConsolePortFilter
|
filter_class = filters.ConsolePortFilter
|
||||||
|
|
||||||
|
|
||||||
class ConsoleServerPortViewSet(WritableSerializerMixin, ModelViewSet):
|
class ConsoleServerPortViewSet(WritableSerializerMixin, ModelViewSet):
|
||||||
queryset = ConsoleServerPort.objects.select_related('device', 'connected_console__device')
|
queryset = ConsoleServerPort.objects.select_related('device', 'connected_console__device')
|
||||||
serializer_class = serializers.ConsoleServerPortSerializer
|
serializer_class = serializers.ConsoleServerPortSerializer
|
||||||
write_serializer_class= serializers.WritableConsoleServerPortSerializer
|
write_serializer_class = serializers.WritableConsoleServerPortSerializer
|
||||||
filter_class = filters.ConsoleServerPortFilter
|
filter_class = filters.ConsoleServerPortFilter
|
||||||
|
|
||||||
|
|
||||||
class PowerPortViewSet(WritableSerializerMixin, ModelViewSet):
|
class PowerPortViewSet(WritableSerializerMixin, ModelViewSet):
|
||||||
queryset = PowerPort.objects.select_related('device', 'power_outlet__device')
|
queryset = PowerPort.objects.select_related('device', 'power_outlet__device')
|
||||||
serializer_class = serializers.PowerPortSerializer
|
serializer_class = serializers.PowerPortSerializer
|
||||||
write_serializer_class= serializers.WritablePowerPortSerializer
|
write_serializer_class = serializers.WritablePowerPortSerializer
|
||||||
filter_class = filters.PowerPortFilter
|
filter_class = filters.PowerPortFilter
|
||||||
|
|
||||||
|
|
||||||
class PowerOutletViewSet(WritableSerializerMixin, ModelViewSet):
|
class PowerOutletViewSet(WritableSerializerMixin, ModelViewSet):
|
||||||
queryset = PowerOutlet.objects.select_related('device', 'connected_port__device')
|
queryset = PowerOutlet.objects.select_related('device', 'connected_port__device')
|
||||||
serializer_class = serializers.PowerOutletSerializer
|
serializer_class = serializers.PowerOutletSerializer
|
||||||
write_serializer_class= serializers.WritablePowerOutletSerializer
|
write_serializer_class = serializers.WritablePowerOutletSerializer
|
||||||
filter_class = filters.PowerOutletFilter
|
filter_class = filters.PowerOutletFilter
|
||||||
|
|
||||||
|
|
||||||
class InterfaceViewSet(WritableSerializerMixin, ModelViewSet):
|
class InterfaceViewSet(WritableSerializerMixin, ModelViewSet):
|
||||||
queryset = Interface.objects.select_related('device')
|
queryset = Interface.objects.select_related('device')
|
||||||
serializer_class = serializers.InterfaceSerializer
|
serializer_class = serializers.InterfaceSerializer
|
||||||
write_serializer_class= serializers.WritableInterfaceSerializer
|
write_serializer_class = serializers.WritableInterfaceSerializer
|
||||||
filter_class = filters.InterfaceFilter
|
filter_class = filters.InterfaceFilter
|
||||||
|
|
||||||
@detail_route()
|
@detail_route()
|
||||||
@ -220,14 +267,14 @@ class InterfaceViewSet(WritableSerializerMixin, ModelViewSet):
|
|||||||
class DeviceBayViewSet(WritableSerializerMixin, ModelViewSet):
|
class DeviceBayViewSet(WritableSerializerMixin, ModelViewSet):
|
||||||
queryset = DeviceBay.objects.select_related('installed_device')
|
queryset = DeviceBay.objects.select_related('installed_device')
|
||||||
serializer_class = serializers.DeviceBaySerializer
|
serializer_class = serializers.DeviceBaySerializer
|
||||||
write_serializer_class= serializers.WritableDeviceBaySerializer
|
write_serializer_class = serializers.WritableDeviceBaySerializer
|
||||||
filter_class = filters.DeviceBayFilter
|
filter_class = filters.DeviceBayFilter
|
||||||
|
|
||||||
|
|
||||||
class ModuleViewSet(WritableSerializerMixin, ModelViewSet):
|
class ModuleViewSet(WritableSerializerMixin, ModelViewSet):
|
||||||
queryset = Module.objects.select_related('device', 'manufacturer')
|
queryset = Module.objects.select_related('device', 'manufacturer')
|
||||||
serializer_class = serializers.ModuleSerializer
|
serializer_class = serializers.ModuleSerializer
|
||||||
write_serializer_class= serializers.WritableModuleSerializer
|
write_serializer_class = serializers.WritableModuleSerializer
|
||||||
filter_class = filters.ModuleFilter
|
filter_class = filters.ModuleFilter
|
||||||
|
|
||||||
|
|
||||||
|
@ -7,8 +7,9 @@ from extras.filters import CustomFieldFilterSet
|
|||||||
from tenancy.models import Tenant
|
from tenancy.models import Tenant
|
||||||
from utilities.filters import NullableModelMultipleChoiceFilter
|
from utilities.filters import NullableModelMultipleChoiceFilter
|
||||||
from .models import (
|
from .models import (
|
||||||
ConsolePort, ConsoleServerPort, Device, DeviceBay, DeviceRole, DeviceType, Interface, InterfaceConnection,
|
ConsolePort, ConsolePortTemplate, ConsoleServerPort, ConsoleServerPortTemplate, Device, DeviceBay,
|
||||||
Manufacturer, Module, Platform, PowerOutlet, PowerPort, Rack, RackGroup, RackRole, Site,
|
DeviceBayTemplate, DeviceRole, DeviceType, Interface, InterfaceConnection, InterfaceTemplate, Manufacturer, Module,
|
||||||
|
Platform, PowerOutlet, PowerOutletTemplate, PowerPort, PowerPortTemplate, Rack, RackGroup, RackRole, Site,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@ -153,6 +154,62 @@ class DeviceTypeFilter(CustomFieldFilterSet, django_filters.FilterSet):
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
class DeviceTypeComponentFilterSet(django_filters.FilterSet):
|
||||||
|
devicetype_id = django_filters.ModelMultipleChoiceFilter(
|
||||||
|
name='device_type',
|
||||||
|
queryset=DeviceType.objects.all(),
|
||||||
|
label='Device type (ID)',
|
||||||
|
)
|
||||||
|
devicetype = django_filters.ModelMultipleChoiceFilter(
|
||||||
|
name='device_type',
|
||||||
|
queryset=DeviceType.objects.all(),
|
||||||
|
to_field_name='name',
|
||||||
|
label='Device type (name)',
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
class ConsolePortTemplateFilter(DeviceTypeComponentFilterSet):
|
||||||
|
|
||||||
|
class Meta:
|
||||||
|
model = ConsolePortTemplate
|
||||||
|
fields = ['name']
|
||||||
|
|
||||||
|
|
||||||
|
class ConsoleServerPortTemplateFilter(DeviceTypeComponentFilterSet):
|
||||||
|
|
||||||
|
class Meta:
|
||||||
|
model = ConsoleServerPortTemplate
|
||||||
|
fields = ['name']
|
||||||
|
|
||||||
|
|
||||||
|
class PowerPortTemplateFilter(DeviceTypeComponentFilterSet):
|
||||||
|
|
||||||
|
class Meta:
|
||||||
|
model = PowerPortTemplate
|
||||||
|
fields = ['name']
|
||||||
|
|
||||||
|
|
||||||
|
class PowerOutletTemplateFilter(DeviceTypeComponentFilterSet):
|
||||||
|
|
||||||
|
class Meta:
|
||||||
|
model = PowerOutletTemplate
|
||||||
|
fields = ['name']
|
||||||
|
|
||||||
|
|
||||||
|
class InterfaceTemplateFilter(DeviceTypeComponentFilterSet):
|
||||||
|
|
||||||
|
class Meta:
|
||||||
|
model = InterfaceTemplate
|
||||||
|
fields = ['name']
|
||||||
|
|
||||||
|
|
||||||
|
class DeviceBayTemplateFilter(DeviceTypeComponentFilterSet):
|
||||||
|
|
||||||
|
class Meta:
|
||||||
|
model = DeviceBayTemplate
|
||||||
|
fields = ['name']
|
||||||
|
|
||||||
|
|
||||||
class DeviceFilter(CustomFieldFilterSet, django_filters.FilterSet):
|
class DeviceFilter(CustomFieldFilterSet, django_filters.FilterSet):
|
||||||
q = django_filters.MethodFilter(
|
q = django_filters.MethodFilter(
|
||||||
action='search',
|
action='search',
|
||||||
@ -278,7 +335,7 @@ class DeviceFilter(CustomFieldFilterSet, django_filters.FilterSet):
|
|||||||
return queryset.none()
|
return queryset.none()
|
||||||
|
|
||||||
|
|
||||||
class ConsolePortFilter(django_filters.FilterSet):
|
class DeviceComponentFilterSet(django_filters.FilterSet):
|
||||||
device_id = django_filters.ModelMultipleChoiceFilter(
|
device_id = django_filters.ModelMultipleChoiceFilter(
|
||||||
name='device',
|
name='device',
|
||||||
queryset=Device.objects.all(),
|
queryset=Device.objects.all(),
|
||||||
@ -291,113 +348,50 @@ class ConsolePortFilter(django_filters.FilterSet):
|
|||||||
label='Device (name)',
|
label='Device (name)',
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
class ConsolePortFilter(DeviceComponentFilterSet):
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
model = ConsolePort
|
model = ConsolePort
|
||||||
fields = ['name']
|
fields = ['name']
|
||||||
|
|
||||||
|
|
||||||
class ConsoleServerPortFilter(django_filters.FilterSet):
|
class ConsoleServerPortFilter(DeviceComponentFilterSet):
|
||||||
device_id = django_filters.ModelMultipleChoiceFilter(
|
|
||||||
name='device',
|
|
||||||
queryset=Device.objects.all(),
|
|
||||||
label='Device (ID)',
|
|
||||||
)
|
|
||||||
device = django_filters.ModelMultipleChoiceFilter(
|
|
||||||
name='device',
|
|
||||||
queryset=Device.objects.all(),
|
|
||||||
to_field_name='name',
|
|
||||||
label='Device (name)',
|
|
||||||
)
|
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
model = ConsoleServerPort
|
model = ConsoleServerPort
|
||||||
fields = ['name']
|
fields = ['name']
|
||||||
|
|
||||||
|
|
||||||
class PowerPortFilter(django_filters.FilterSet):
|
class PowerPortFilter(DeviceComponentFilterSet):
|
||||||
device_id = django_filters.ModelMultipleChoiceFilter(
|
|
||||||
name='device',
|
|
||||||
queryset=Device.objects.all(),
|
|
||||||
label='Device (ID)',
|
|
||||||
)
|
|
||||||
device = django_filters.ModelMultipleChoiceFilter(
|
|
||||||
name='device',
|
|
||||||
queryset=Device.objects.all(),
|
|
||||||
to_field_name='name',
|
|
||||||
label='Device (name)',
|
|
||||||
)
|
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
model = PowerPort
|
model = PowerPort
|
||||||
fields = ['name']
|
fields = ['name']
|
||||||
|
|
||||||
|
|
||||||
class PowerOutletFilter(django_filters.FilterSet):
|
class PowerOutletFilter(DeviceComponentFilterSet):
|
||||||
device_id = django_filters.ModelMultipleChoiceFilter(
|
|
||||||
name='device',
|
|
||||||
queryset=Device.objects.all(),
|
|
||||||
label='Device (ID)',
|
|
||||||
)
|
|
||||||
device = django_filters.ModelMultipleChoiceFilter(
|
|
||||||
name='device',
|
|
||||||
queryset=Device.objects.all(),
|
|
||||||
to_field_name='name',
|
|
||||||
label='Device (name)',
|
|
||||||
)
|
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
model = PowerOutlet
|
model = PowerOutlet
|
||||||
fields = ['name']
|
fields = ['name']
|
||||||
|
|
||||||
|
|
||||||
class InterfaceFilter(django_filters.FilterSet):
|
class InterfaceFilter(DeviceComponentFilterSet):
|
||||||
device_id = django_filters.ModelMultipleChoiceFilter(
|
|
||||||
name='device',
|
|
||||||
queryset=Device.objects.all(),
|
|
||||||
label='Device (ID)',
|
|
||||||
)
|
|
||||||
device = django_filters.ModelMultipleChoiceFilter(
|
|
||||||
name='device',
|
|
||||||
queryset=Device.objects.all(),
|
|
||||||
to_field_name='name',
|
|
||||||
label='Device (name)',
|
|
||||||
)
|
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
model = Interface
|
model = Interface
|
||||||
fields = ['name']
|
fields = ['name']
|
||||||
|
|
||||||
|
|
||||||
class DeviceBayFilter(django_filters.FilterSet):
|
class DeviceBayFilter(DeviceComponentFilterSet):
|
||||||
device_id = django_filters.ModelMultipleChoiceFilter(
|
|
||||||
name='device',
|
|
||||||
queryset=Device.objects.all(),
|
|
||||||
label='Device (ID)',
|
|
||||||
)
|
|
||||||
device = django_filters.ModelMultipleChoiceFilter(
|
|
||||||
name='device',
|
|
||||||
queryset=Device.objects.all(),
|
|
||||||
to_field_name='name',
|
|
||||||
label='Device (name)',
|
|
||||||
)
|
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
model = DeviceBay
|
model = DeviceBay
|
||||||
fields = ['name']
|
fields = ['name']
|
||||||
|
|
||||||
|
|
||||||
class ModuleFilter(django_filters.FilterSet):
|
class ModuleFilter(DeviceComponentFilterSet):
|
||||||
device_id = django_filters.ModelMultipleChoiceFilter(
|
|
||||||
name='device',
|
|
||||||
queryset=Device.objects.all(),
|
|
||||||
label='Device (ID)',
|
|
||||||
)
|
|
||||||
device = django_filters.ModelMultipleChoiceFilter(
|
|
||||||
name='device',
|
|
||||||
queryset=Device.objects.all(),
|
|
||||||
to_field_name='name',
|
|
||||||
label='Device (name)',
|
|
||||||
)
|
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
model = Module
|
model = Module
|
||||||
|
Reference in New Issue
Block a user