mirror of
https://github.com/netbox-community/netbox.git
synced 2025-07-27 02:48:38 -06:00
Fix Service detail page breadcrumb links
This commit is contained in:
parent
be3d55a032
commit
048175ff41
@ -8,7 +8,7 @@ from django.utils.translation import gettext_lazy as _
|
|||||||
from circuits.models import Provider
|
from circuits.models import Provider
|
||||||
from dcim.filtersets import InterfaceFilterSet
|
from dcim.filtersets import InterfaceFilterSet
|
||||||
from dcim.forms import InterfaceFilterForm
|
from dcim.forms import InterfaceFilterForm
|
||||||
from dcim.models import Interface, Site
|
from dcim.models import Device, Interface, Site
|
||||||
from ipam.tables import VLANTranslationRuleTable
|
from ipam.tables import VLANTranslationRuleTable
|
||||||
from netbox.views import generic
|
from netbox.views import generic
|
||||||
from utilities.query import count_related
|
from utilities.query import count_related
|
||||||
@ -16,7 +16,7 @@ from utilities.tables import get_table_ordering
|
|||||||
from utilities.views import GetRelatedModelsMixin, ViewTab, register_model_view
|
from utilities.views import GetRelatedModelsMixin, ViewTab, register_model_view
|
||||||
from virtualization.filtersets import VMInterfaceFilterSet
|
from virtualization.filtersets import VMInterfaceFilterSet
|
||||||
from virtualization.forms import VMInterfaceFilterForm
|
from virtualization.forms import VMInterfaceFilterForm
|
||||||
from virtualization.models import VMInterface
|
from virtualization.models import VirtualMachine, VMInterface
|
||||||
from . import filtersets, forms, tables
|
from . import filtersets, forms, tables
|
||||||
from .choices import PrefixStatusChoices
|
from .choices import PrefixStatusChoices
|
||||||
from .constants import *
|
from .constants import *
|
||||||
@ -1431,6 +1431,17 @@ class ServiceListView(generic.ObjectListView):
|
|||||||
class ServiceView(generic.ObjectView):
|
class ServiceView(generic.ObjectView):
|
||||||
queryset = Service.objects.all()
|
queryset = Service.objects.all()
|
||||||
|
|
||||||
|
def get_extra_context(self, request, instance):
|
||||||
|
context = {}
|
||||||
|
if isinstance(instance.parent, Device):
|
||||||
|
context['breadcrumb_queryparam'] = 'device_id'
|
||||||
|
elif isinstance(instance.parent, VirtualMachine):
|
||||||
|
context['breadcrumb_queryparam'] = 'virtual_machine_id'
|
||||||
|
elif isinstance(instance.parent, FHRPGroup):
|
||||||
|
context['breadcrumb_queryparam'] = 'fhrpgroup_id'
|
||||||
|
|
||||||
|
return context
|
||||||
|
|
||||||
|
|
||||||
@register_model_view(Service, 'add', detail=False)
|
@register_model_view(Service, 'add', detail=False)
|
||||||
class ServiceCreateView(generic.ObjectEditView):
|
class ServiceCreateView(generic.ObjectEditView):
|
||||||
|
@ -7,10 +7,12 @@
|
|||||||
|
|
||||||
{% block breadcrumbs %}
|
{% block breadcrumbs %}
|
||||||
{{ block.super }}
|
{{ block.super }}
|
||||||
{% if object.device %}
|
{% if object.parent and breadcrumb_queryparam %}
|
||||||
<li class="breadcrumb-item"><a href="{% url 'ipam:service_list' %}?device_id={{ object.device.pk }}">{{ object.device }}</a></li>
|
<li class="breadcrumb-item">
|
||||||
{% elif object.virtual_machine %}
|
<a href="{% url 'ipam:service_list' %}?{{ breadcrumb_queryparam }}={{ object.parent.pk }}">
|
||||||
<li class="breadcrumb-item"><a href="{% url 'ipam:service_list' %}?virtual_machine_id={{ object.virtual_machine.pk }}">{{ object.virtual_machine }}</a></li>
|
{{ object.parent }}
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user