From 4a12037ac41096510f194c116bc3111d4b376917 Mon Sep 17 00:00:00 2001 From: Louis Date: Thu, 17 Sep 2026 12:01:02 +0200 Subject: [PATCH] fix: show wireless links between devices only reachable via other cables WirelessLink lookups only matched devices already in the selected racks (device_ids), so a link between two purely external devices that were pulled into the topology only as endpoints of unrelated cables (e.g. two outdoor radios each cabled to something inside the selected racks) never showed up, even though both endpoint nodes were already rendered. Now the wireless query also matches devices discovered via the cable pass (topology_nodes), so links between already-visible external nodes are drawn too. Co-Authored-By: Claude Sonnet 5 --- netbox_topology_views/views.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/netbox_topology_views/views.py b/netbox_topology_views/views.py index dfab69a..e0de033 100644 --- a/netbox_topology_views/views.py +++ b/netbox_topology_views/views.py @@ -1044,9 +1044,12 @@ class RackElevationView(PermissionRequiredMixin, View): "kind": "power" if is_power_cable else "cable", }) + wireless_device_ids = set(device_ids) | { + node["device_id"] for node in topology_nodes.values() if node.get("device_id") + } wireless_links = WirelessLink.objects.restrict(request.user, "view").filter( - Q(interface_a__device_id__in=device_ids) | - Q(interface_b__device_id__in=device_ids) + Q(interface_a__device_id__in=wireless_device_ids) | + Q(interface_b__device_id__in=wireless_device_ids) ).select_related( "interface_a__device__rack", "interface_a__device__role", "interface_a__device__device_type", "interface_b__device__rack", "interface_b__device__role", "interface_b__device__device_type",