mirror of
https://github.com/netbox-community/netbox.git
synced 2026-04-22 16:58:49 +02:00
fix(dcim): Render device height as rack units via floatformat
Use `TemplatedAttr` for device height and render using Django's `floatformat` filter so 0.0 is displayed as `0U` (and whole-U values omit the decimal). Fixes #21267
This commit is contained in:
committed by
Jeremy Stretch
parent
d95b1186fb
commit
ae736ef407
@@ -126,7 +126,7 @@ class DeviceDeviceTypePanel(panels.ObjectAttributesPanel):
|
|||||||
|
|
||||||
manufacturer = attrs.RelatedObjectAttr('device_type.manufacturer', linkify=True)
|
manufacturer = attrs.RelatedObjectAttr('device_type.manufacturer', linkify=True)
|
||||||
model = attrs.RelatedObjectAttr('device_type', linkify=True)
|
model = attrs.RelatedObjectAttr('device_type', linkify=True)
|
||||||
height = attrs.TextAttr('device_type.u_height', format_string='{}U')
|
height = attrs.TemplatedAttr('device_type.u_height', template_name='dcim/devicetype/attrs/height.html')
|
||||||
front_image = attrs.ImageAttr('device_type.front_image')
|
front_image = attrs.ImageAttr('device_type.front_image')
|
||||||
rear_image = attrs.ImageAttr('device_type.rear_image')
|
rear_image = attrs.ImageAttr('device_type.rear_image')
|
||||||
|
|
||||||
@@ -143,7 +143,7 @@ class DeviceTypePanel(panels.ObjectAttributesPanel):
|
|||||||
part_number = attrs.TextAttr('part_number')
|
part_number = attrs.TextAttr('part_number')
|
||||||
default_platform = attrs.RelatedObjectAttr('default_platform', linkify=True)
|
default_platform = attrs.RelatedObjectAttr('default_platform', linkify=True)
|
||||||
description = attrs.TextAttr('description')
|
description = attrs.TextAttr('description')
|
||||||
height = attrs.TextAttr('u_height', format_string='{}U', label=_('Height'))
|
height = attrs.TemplatedAttr('u_height', template_name='dcim/devicetype/attrs/height.html')
|
||||||
exclude_from_utilization = attrs.BooleanAttr('exclude_from_utilization')
|
exclude_from_utilization = attrs.BooleanAttr('exclude_from_utilization')
|
||||||
full_depth = attrs.BooleanAttr('is_full_depth')
|
full_depth = attrs.BooleanAttr('is_full_depth')
|
||||||
weight = attrs.NumericAttr('weight', unit_accessor='get_weight_unit_display')
|
weight = attrs.NumericAttr('weight', unit_accessor='get_weight_unit_display')
|
||||||
|
|||||||
@@ -103,7 +103,7 @@ class TextAttr(ObjectAttribute):
|
|||||||
def get_value(self, obj):
|
def get_value(self, obj):
|
||||||
value = resolve_attr_path(obj, self.accessor)
|
value = resolve_attr_path(obj, self.accessor)
|
||||||
# Apply format string (if any)
|
# Apply format string (if any)
|
||||||
if value and self.format_string:
|
if value is not None and value != '' and self.format_string:
|
||||||
return self.format_string.format(value)
|
return self.format_string.format(value)
|
||||||
return value
|
return value
|
||||||
|
|
||||||
|
|||||||
1
netbox/templates/dcim/devicetype/attrs/height.html
Normal file
1
netbox/templates/dcim/devicetype/attrs/height.html
Normal file
@@ -0,0 +1 @@
|
|||||||
|
{{ value|floatformat }}U
|
||||||
Reference in New Issue
Block a user