Explorar el Código

fix(ui): Add hierarchical breadcrumbs for nested objects

Display ancestor hierarchy in breadcrumbs for DeviceRole, Platform, and
PowerPanel detail views. Shows full parent chain with filtering links
to improve navigation through nested object relationships.

Fixes #22957
Martin Hauser hace 4 días
padre
commit
5d9fa7be86

+ 4 - 1
netbox/templates/dcim/devicerole.html

@@ -5,7 +5,10 @@
 {% load i18n %}
 {% load i18n %}
 
 
 {% block breadcrumbs %}
 {% block breadcrumbs %}
-  <li class="breadcrumb-item"><a href="{% url 'dcim:devicerole_list' %}">{% trans "Device Roles" %}</a></li>
+  {{ block.super }}
+  {% for devicerole in object.get_ancestors %}
+    <li class="breadcrumb-item"><a href="{% url 'dcim:devicerole_list' %}?parent_id={{ devicerole.pk }}">{{ devicerole }}</a></li>
+  {% endfor %}
 {% endblock %}
 {% endblock %}
 
 
 {% block extra_controls %}
 {% block extra_controls %}

+ 3 - 0
netbox/templates/dcim/platform.html

@@ -9,6 +9,9 @@
   {% if object.manufacturer %}
   {% if object.manufacturer %}
     <li class="breadcrumb-item"><a href="{% url 'dcim:platform_list' %}?manufacturer_id={{ object.manufacturer.pk }}">{{ object.manufacturer }}</a></li>
     <li class="breadcrumb-item"><a href="{% url 'dcim:platform_list' %}?manufacturer_id={{ object.manufacturer.pk }}">{{ object.manufacturer }}</a></li>
   {% endif %}
   {% endif %}
+  {% for platform in object.get_ancestors %}
+    <li class="breadcrumb-item"><a href="{% url 'dcim:platform_list' %}?parent_id={{ platform.pk }}">{{ platform }}</a></li>
+  {% endfor %}
 {% endblock %}
 {% endblock %}
 
 
 {% block extra_controls %}
 {% block extra_controls %}

+ 4 - 1
netbox/templates/dcim/powerpanel.html

@@ -4,6 +4,9 @@
   {{ block.super }}
   {{ block.super }}
   <li class="breadcrumb-item"><a href="{% url 'dcim:powerpanel_list' %}?site_id={{ object.site.pk }}">{{ object.site }}</a></li>
   <li class="breadcrumb-item"><a href="{% url 'dcim:powerpanel_list' %}?site_id={{ object.site.pk }}">{{ object.site }}</a></li>
   {% if object.location %}
   {% if object.location %}
-    <li class="breadcrumb-item">{{ object.location|linkify }}</li>
+    {% for location in object.location.get_ancestors %}
+      <li class="breadcrumb-item"><a href="{% url 'dcim:powerpanel_list' %}?location_id={{ location.pk }}">{{ location }}</a></li>
+    {% endfor %}
+    <li class="breadcrumb-item"><a href="{% url 'dcim:powerpanel_list' %}?location_id={{ object.location.pk }}">{{ object.location }}</a></li>
   {% endif %}
   {% endif %}
 {% endblock %}
 {% endblock %}