From 053fa9fdea9eb9c25ca83b564e489cda01315da3 Mon Sep 17 00:00:00 2001 From: Alexander Haase Date: Mon, 10 Jun 2024 21:47:01 +0200 Subject: [PATCH] Fix relations view for ASNs ASNs have ManyToMany relationships and therefore can't used automatic resolving. Explicit relations have been restored as before. --- netbox/dcim/views.py | 6 ++++-- netbox/ipam/views.py | 9 ++++++++- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/netbox/dcim/views.py b/netbox/dcim/views.py index 63927b5e7..8d6494c16 100644 --- a/netbox/dcim/views.py +++ b/netbox/dcim/views.py @@ -17,7 +17,7 @@ from jinja2.exceptions import TemplateError from circuits.models import Circuit, CircuitTermination from extras.views import ObjectConfigContextView -from ipam.models import IPAddress, VLANGroup +from ipam.models import ASN, IPAddress, VLANGroup from ipam.tables import InterfaceVLANTable from netbox.constants import DEFAULT_ACTION_PERMISSIONS from netbox.views import generic @@ -400,7 +400,9 @@ class SiteView(GetRelatedModelsMixin, generic.ObjectView): scope_type=ContentType.objects.get_for_model(Site), scope_id=instance.pk ), 'site'), - (Circuit.objects.restrict(request.user, 'view').filter(terminations__site=instance).distinct(), 'site_id'), + (ASN.objects.restrict(request.user, 'view').filter(sites=instance), 'site_id'), + (Circuit.objects.restrict(request.user, 'view').filter(terminations__site=instance).distinct(), + 'site_id'), ), ), } diff --git a/netbox/ipam/views.py b/netbox/ipam/views.py index 4b12fec54..7a542764f 100644 --- a/netbox/ipam/views.py +++ b/netbox/ipam/views.py @@ -269,7 +269,14 @@ class ASNView(GetRelatedModelsMixin, generic.ObjectView): def get_extra_context(self, request, instance): return { - 'related_models': self.get_related_models(request, [instance]), + 'related_models': self.get_related_models( + request, + instance, + extra=( + (Site.objects.restrict(request.user, 'view').filter(asns__in=[instance]), 'asn_id'), + (Provider.objects.restrict(request.user, 'view').filter(asns__in=[instance]), 'asn_id'), + ), + ), }