mirror of
https://github.com/netbox-community/netbox.git
synced 2025-07-19 05:21:55 -06:00
Updated RackViewSet() to be compatible with paginated API
This commit is contained in:
parent
36bbcc8559
commit
1f78462f58
@ -175,6 +175,28 @@ class WritableRackSerializer(serializers.ModelSerializer):
|
|||||||
return data
|
return data
|
||||||
|
|
||||||
|
|
||||||
|
#
|
||||||
|
# Rack units
|
||||||
|
#
|
||||||
|
|
||||||
|
class NestedDeviceSerializer(serializers.ModelSerializer):
|
||||||
|
url = serializers.HyperlinkedIdentityField(view_name='dcim-api:device-detail')
|
||||||
|
|
||||||
|
class Meta:
|
||||||
|
model = Device
|
||||||
|
fields = ['id', 'url', 'name', 'display_name']
|
||||||
|
|
||||||
|
|
||||||
|
class RackUnitSerializer(serializers.Serializer):
|
||||||
|
"""
|
||||||
|
A rack unit is an abstraction formed by the set (rack, position, face); it does not exist as a row in the database.
|
||||||
|
"""
|
||||||
|
id = serializers.IntegerField(read_only=True)
|
||||||
|
name = serializers.CharField(read_only=True)
|
||||||
|
face = serializers.IntegerField(read_only=True)
|
||||||
|
device = NestedDeviceSerializer(read_only=True)
|
||||||
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# Rack reservations
|
# Rack reservations
|
||||||
#
|
#
|
||||||
@ -454,14 +476,6 @@ class DeviceSerializer(CustomFieldModelSerializer):
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
class NestedDeviceSerializer(serializers.ModelSerializer):
|
|
||||||
url = serializers.HyperlinkedIdentityField(view_name='dcim-api:device-detail')
|
|
||||||
|
|
||||||
class Meta:
|
|
||||||
model = Device
|
|
||||||
fields = ['id', 'url', 'name', 'display_name']
|
|
||||||
|
|
||||||
|
|
||||||
class WritableDeviceSerializer(serializers.ModelSerializer):
|
class WritableDeviceSerializer(serializers.ModelSerializer):
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
|
@ -96,15 +96,10 @@ class RackViewSet(WritableSerializerMixin, CustomFieldModelViewSet):
|
|||||||
exclude_pk = None
|
exclude_pk = None
|
||||||
elevation = rack.get_rack_units(face, exclude_pk)
|
elevation = rack.get_rack_units(face, exclude_pk)
|
||||||
|
|
||||||
# Serialize Devices within the rack elevation
|
page = self.paginate_queryset(elevation)
|
||||||
for u in elevation:
|
if page is not None:
|
||||||
if u['device']:
|
rack_units = serializers.RackUnitSerializer(page, many=True, context={'request': request})
|
||||||
u['device'] = serializers.NestedDeviceSerializer(
|
return self.get_paginated_response(rack_units.data)
|
||||||
instance=u['device'],
|
|
||||||
context={'request': request},
|
|
||||||
).data
|
|
||||||
|
|
||||||
return Response(elevation)
|
|
||||||
|
|
||||||
|
|
||||||
#
|
#
|
||||||
|
Loading…
Reference in New Issue
Block a user