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
This commit is contained in:
Martin Hauser 2026-08-18 15:35:21 +02:00 committed by Jeremy Stretch
parent c2d39b12d8
commit 5d9fa7be86
3 changed files with 11 additions and 2 deletions

View File

@ -5,7 +5,10 @@
{% load i18n %}
{% 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 %}
{% block extra_controls %}

View File

@ -9,6 +9,9 @@
{% if object.manufacturer %}
<li class="breadcrumb-item"><a href="{% url 'dcim:platform_list' %}?manufacturer_id={{ object.manufacturer.pk }}">{{ object.manufacturer }}</a></li>
{% 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 %}
{% block extra_controls %}

View File

@ -4,6 +4,9 @@
{{ block.super }}
<li class="breadcrumb-item"><a href="{% url 'dcim:powerpanel_list' %}?site_id={{ object.site.pk }}">{{ object.site }}</a></li>
{% 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 %}
{% endblock %}