diff --git a/src/ralph/admin/helpers.py b/src/ralph/admin/helpers.py
index 61a20e1981..0a71986064 100644
--- a/src/ralph/admin/helpers.py
+++ b/src/ralph/admin/helpers.py
@@ -108,5 +108,5 @@ def generate_html_link(base_url, params, label):
return '{label}'.format(
base_url=base_url,
params=urlencode(params),
- label=label
+ label=str(label).replace(' ', ' ')
)
diff --git a/src/ralph/data_center/admin.py b/src/ralph/data_center/admin.py
index c8c8315b71..819f6c763f 100644
--- a/src/ralph/data_center/admin.py
+++ b/src/ralph/data_center/admin.py
@@ -225,7 +225,7 @@ def localization(self, obj):
data center, server_room, rack, position (if is blade)
"""
base_url = reverse('admin:data_center_datacenterasset_changelist')
- position = '{}'.format(obj.position)
+ position = obj.position
if obj.is_blade:
position = generate_html_link(
base_url,
@@ -234,13 +234,11 @@ def localization(self, obj):
'position__start': obj.position,
'position__end': obj.position
},
- position
+ position,
)
- return (
- '{data_center}/{server_room}/{rack}/{position}'
- ).format(
- data_center=generate_html_link(
+ result = [
+ generate_html_link(
base_url,
{
'rack__server_room__data_center':
@@ -248,18 +246,24 @@ def localization(self, obj):
},
obj.rack.server_room.data_center.name
),
- server_room=generate_html_link(
+ generate_html_link(
base_url,
{'rack__server_room': obj.rack.server_room_id},
obj.rack.server_room.name
),
- rack=generate_html_link(
+ generate_html_link(
base_url,
{'rack': obj.rack_id},
obj.rack.name
- ),
- position=position if obj.position else ''
- ) if obj.rack else '—'
+ )
+ ] if obj.rack else []
+
+ if obj.position:
+ result.append(str(position))
+ if obj.slot_no:
+ result.append(str(obj.slot_no))
+
+ return ' / '.join(result) if obj.rack else '—'
localization.short_description = _('Localization')
localization.allow_tags = True