Extended DeviceTypeSerializer to include component templates

This commit is contained in:
Jeremy Stretch 2016-03-08 22:48:14 -05:00
parent 0acf56d773
commit f52b880d98

View File

@ -1,7 +1,8 @@
from rest_framework import serializers from rest_framework import serializers
from ipam.models import IPAddress from ipam.models import IPAddress
from dcim.models import Site, Rack, RackGroup, Manufacturer, DeviceType, DeviceRole, Platform, Device, ConsolePort,\ from dcim.models import Site, Rack, RackGroup, Manufacturer, ConsolePortTemplate, ConsoleServerPortTemplate, \
PowerPortTemplate, PowerOutletTemplate, InterfaceTemplate, DeviceType, DeviceRole, Platform, Device, ConsolePort, \
ConsoleServerPort, PowerPort, PowerOutlet, Interface, InterfaceConnection, RACK_FACE_FRONT, RACK_FACE_REAR ConsoleServerPort, PowerPort, PowerOutlet, Interface, InterfaceConnection, RACK_FACE_FRONT, RACK_FACE_REAR
@ -107,12 +108,54 @@ class ManufacturerNestedSerializer(ManufacturerSerializer):
# Device types # Device types
# #
class ConsolePortTemplateNestedSerializer(serializers.ModelSerializer):
class Meta:
model = ConsolePortTemplate
fields = ['id', 'name']
class ConsoleServerPortTemplateNestedSerializer(serializers.ModelSerializer):
class Meta:
model = ConsoleServerPortTemplate
fields = ['id', 'name']
class PowerPortTemplateNestedSerializer(serializers.ModelSerializer):
class Meta:
model = PowerPortTemplate
fields = ['id', 'name']
class PowerOutletTemplateNestedSerializer(serializers.ModelSerializer):
class Meta:
model = PowerOutletTemplate
fields = ['id', 'name']
class InterfaceTemplateNestedSerializer(serializers.ModelSerializer):
class Meta:
model = InterfaceTemplate
fields = ['id', 'name', 'form_factor', 'mgmt_only']
class DeviceTypeSerializer(serializers.ModelSerializer): class DeviceTypeSerializer(serializers.ModelSerializer):
manufacturer = ManufacturerNestedSerializer() manufacturer = ManufacturerNestedSerializer()
console_port_templates = ConsolePortTemplateNestedSerializer(many=True, read_only=True)
cs_port_templates = ConsoleServerPortTemplateNestedSerializer(many=True, read_only=True)
power_port_templates = PowerPortTemplateNestedSerializer(many=True, read_only=True)
power_outlet_templates = PowerPortTemplateNestedSerializer(many=True, read_only=True)
interface_templates = InterfaceTemplateNestedSerializer(many=True, read_only=True)
class Meta: class Meta:
model = DeviceType model = DeviceType
fields = ['id', 'manufacturer', 'model', 'slug', 'u_height', 'is_console_server', 'is_pdu', 'is_network_device'] fields = ['id', 'manufacturer', 'model', 'slug', 'u_height', 'is_console_server', 'is_pdu', 'is_network_device',
'console_port_templates', 'cs_port_templates', 'power_port_templates', 'power_outlet_templates',
'interface_templates']
class DeviceTypeNestedSerializer(DeviceTypeSerializer): class DeviceTypeNestedSerializer(DeviceTypeSerializer):