From 542a548abd4240cb6fc7fd7433ee1c6b5e0aa8e1 Mon Sep 17 00:00:00 2001 From: Daniel Sheppard Date: Fri, 3 May 2024 16:47:43 -0500 Subject: [PATCH] Preliminary fix for #15948 --- netbox/dcim/svg/cables.py | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/netbox/dcim/svg/cables.py b/netbox/dcim/svg/cables.py index 82eb9a417..868ac4cdf 100644 --- a/netbox/dcim/svg/cables.py +++ b/netbox/dcim/svg/cables.py @@ -405,7 +405,17 @@ class CableTraceSVG: end = far[0].top_center text_offset = 0 - if len(near) > 1: + if len(near) > 1 and len(far) > 1: + start_center = sum([pos.bottom_center[0] for pos in near]) / len(near) + end_center = sum([pos.bottom_center[0] for pos in far]) / len(far) + center_x = (start_center + end_center) / 2 + + start = (center_x, start[1] + FANOUT_HEIGHT + FANOUT_LEG_HEIGHT) + end = (center_x, end[1] - FANOUT_HEIGHT - FANOUT_LEG_HEIGHT) + text_offset -= FANOUT_HEIGHT + FANOUT_LEG_HEIGHT / 2 + self.draw_fanin(start, near, color) + self.draw_fanout(end, far, color) + elif len(near) > 1: # Handle Fan-In - change start position to be directly below start start = (end[0], start[1] + FANOUT_HEIGHT + FANOUT_LEG_HEIGHT) self.draw_fanin(start, near, color)