diff --git a/netbox/dcim/ui/panels.py b/netbox/dcim/ui/panels.py index 440cbad7b..c64c1192e 100644 --- a/netbox/dcim/ui/panels.py +++ b/netbox/dcim/ui/panels.py @@ -125,7 +125,7 @@ class DeviceManagementPanel(panels.ObjectAttributesPanel): class DeviceDimensionsPanel(panels.ObjectAttributesPanel): title = _('Dimensions') - height = attrs.TextAttr('device_type.u_height', format_string='{}U') + height = attrs.TemplatedAttr('device_type.u_height', template_name='dcim/devicetype/attrs/height.html') total_weight = attrs.TemplatedAttr('total_weight', template_name='dcim/device/attrs/total_weight.html') @@ -135,7 +135,7 @@ class DeviceTypePanel(panels.ObjectAttributesPanel): part_number = attrs.TextAttr('part_number') default_platform = attrs.RelatedObjectAttr('default_platform', linkify=True) 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') full_depth = attrs.BooleanAttr('is_full_depth') weight = attrs.NumericAttr('weight', unit_accessor='get_weight_unit_display') diff --git a/netbox/netbox/ui/attrs.py b/netbox/netbox/ui/attrs.py index bf55e3f3c..999e02f94 100644 --- a/netbox/netbox/ui/attrs.py +++ b/netbox/netbox/ui/attrs.py @@ -103,7 +103,7 @@ class TextAttr(ObjectAttribute): def get_value(self, obj): value = resolve_attr_path(obj, self.accessor) # 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 value diff --git a/netbox/templates/dcim/devicetype/attrs/height.html b/netbox/templates/dcim/devicetype/attrs/height.html new file mode 100644 index 000000000..064ff5c5a --- /dev/null +++ b/netbox/templates/dcim/devicetype/attrs/height.html @@ -0,0 +1 @@ +{{ value|floatformat }}U