diff --git a/docs/release-notes/version-2.7.md b/docs/release-notes/version-2.7.md index 328c4b4fc..1fa62d1ff 100644 --- a/docs/release-notes/version-2.7.md +++ b/docs/release-notes/version-2.7.md @@ -109,7 +109,7 @@ deprecated and will be removed in v2.8 (see [#3753](https://github.com/netbox-co /api/dcim/racks//units/ ``` -In order to render the elevation as an SVG, include the `render_format=svg` query parameter in the request. You may also +In order to render the elevation as an SVG, include the `render=svg` query parameter in the request. You may also control the width of the elevation drawing in pixels with `unit_width=` and the height of each rack unit with `unit_height=`. The `unit_width` defaults to `230` and the `unit_height` default to `20` which produces elevations the same size as those that appear in the NetBox Web UI. The query parameter `face` is used to @@ -119,14 +119,14 @@ Here is an example of the request url for an SVG rendering using the default par elevation: ``` -/api/dcim/racks//elevation/?render_format=svg +/api/dcim/racks//elevation/?render=svg ``` Here is an example of the request url for an SVG rendering of the rear of the elevation having a width of 300 pixels and per unit height of 35 pixels: ``` -/api/dcim/racks//elevation/?render_format=svg&face=rear&unit_width=300&unit_height=35 +/api/dcim/racks//elevation/?render=svg&face=rear&unit_width=300&unit_height=35 ``` Thanks to [@hellerve](https://github.com/hellerve) for doing the heavy lifting on this! diff --git a/netbox/dcim/api/serializers.py b/netbox/dcim/api/serializers.py index 02c153807..13c8a66df 100644 --- a/netbox/dcim/api/serializers.py +++ b/netbox/dcim/api/serializers.py @@ -176,9 +176,9 @@ class RackElevationDetailFilterSerializer(serializers.Serializer): choices=DeviceFaceChoices, default=DeviceFaceChoices.FACE_FRONT ) - render_format = serializers.ChoiceField( - choices=RackElevationDetailRenderFormatChoices, - default=RackElevationDetailRenderFormatChoices.RENDER_FORMAT_JSON + render = serializers.ChoiceField( + choices=RackElevationDetailRenderChoices, + default=RackElevationDetailRenderChoices.RENDER_JSON ) unit_width = serializers.IntegerField( default=RACK_ELEVATION_UNIT_WIDTH_DEFAULT diff --git a/netbox/dcim/api/views.py b/netbox/dcim/api/views.py index e286026a5..891bf1b50 100644 --- a/netbox/dcim/api/views.py +++ b/netbox/dcim/api/views.py @@ -218,7 +218,7 @@ class RackViewSet(CustomFieldModelViewSet): return Response(serializer.errors, 400) data = serializer.validated_data - if data['render_format'] == 'svg': + if data['render'] == 'svg': # 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') diff --git a/netbox/dcim/choices.py b/netbox/dcim/choices.py index 74150809d..75c8cc734 100644 --- a/netbox/dcim/choices.py +++ b/netbox/dcim/choices.py @@ -105,14 +105,14 @@ class RackDimensionUnitChoices(ChoiceSet): } -class RackElevationDetailRenderFormatChoices(ChoiceSet): +class RackElevationDetailRenderChoices(ChoiceSet): - RENDER_FORMAT_JSON = 'json' - RENDER_FORMAT_SVG = 'svg' + RENDER_JSON = 'json' + RENDER_SVG = 'svg' CHOICES = ( - (RENDER_FORMAT_JSON, 'json'), - (RENDER_FORMAT_SVG, 'svg') + (RENDER_JSON, 'json'), + (RENDER_SVG, 'svg') )