mirror of
https://github.com/netbox-community/netbox.git
synced 2024-05-10 07:54:54 +00:00
review updates to svg rendering
This commit is contained in:
@@ -157,7 +157,7 @@ class RackUnitSerializer(serializers.Serializer):
|
||||
"""
|
||||
id = serializers.IntegerField(read_only=True)
|
||||
name = serializers.CharField(read_only=True)
|
||||
face = ChoiceField(choices=DeviceFaceChoices, required=False, allow_null=True)
|
||||
face = ChoiceField(choices=DeviceFaceChoices, read_only=True)
|
||||
device = NestedDeviceSerializer(read_only=True)
|
||||
|
||||
|
||||
@@ -172,12 +172,14 @@ class RackReservationSerializer(ValidatedModelSerializer):
|
||||
|
||||
|
||||
class RackElevationDetailFilterSerializer(serializers.Serializer):
|
||||
face = serializers.ChoiceField(choices=['front', 'rear'], default='front')
|
||||
render_format = serializers.ChoiceField(choices=['json', 'svg'], default='json')
|
||||
width = serializers.IntegerField(default=230)
|
||||
unit_height = serializers.IntegerField(default=20)
|
||||
face = serializers.ChoiceField(choices=DeviceFaceChoices, default=DeviceFaceChoices.FACE_FRONT)
|
||||
render_format = serializers.ChoiceField(
|
||||
choices=RackElecationDetailRenderFormatChoices,
|
||||
default=RackElecationDetailRenderFormatChoices.RENDER_FORMAT_SVG
|
||||
)
|
||||
unit_width = serializers.IntegerField(default=RACK_ELEVATION_UNIT_WIDTH_DEFAULT)
|
||||
unit_height = serializers.IntegerField(default=RACK_ELEVATION_UNIT_HEIGHT_DEFAULT)
|
||||
exclude = serializers.IntegerField(required=False, default=None)
|
||||
q = serializers.CharField(required=False, default=None)
|
||||
expand_devices = serializers.BooleanField(required=False, default=True)
|
||||
|
||||
|
||||
|
@@ -219,17 +219,17 @@ class RackViewSet(CustomFieldModelViewSet):
|
||||
data = serializer.validated_data
|
||||
|
||||
if data['render_format'] == 'svg':
|
||||
drawing = rack.get_elevation_svg(data['face'], data['width'], data['unit_height'])
|
||||
# Render and return the elevation as an SVG drawing with the correct content type
|
||||
drawing = rack.get_elevation_svg(data['face'], data['unit_width'], data['unit_height'])
|
||||
return HttpResponse(drawing.tostring(), content_type='image/svg+xml')
|
||||
|
||||
else:
|
||||
# Return a JSON representation of the rack units in the elevation
|
||||
elevation = rack.get_rack_units(
|
||||
face=data['face'],
|
||||
exclude=data['exclude'],
|
||||
expand_devices=data['expand_devices']
|
||||
)
|
||||
if data['q']:
|
||||
elevation = [u for u in elevation if data['q'] in str(u['id'])]
|
||||
|
||||
page = self.paginate_queryset(elevation)
|
||||
if page is not None:
|
||||
|
Reference in New Issue
Block a user