Fixes #9789: Fix rendering of cable traces ending at provider networks

This commit is contained in:
jeremystretch
2022-08-01 13:29:39 -04:00
parent 04fb0bd51c
commit 262a0cf397
4 changed files with 21 additions and 15 deletions

View File

@@ -64,20 +64,20 @@ class PathEndpointMixin(object):
return HttpResponse(drawing.render().tostring(), content_type='image/svg+xml')
# Serialize path objects, iterating over each three-tuple in the path
for near_end, cable, far_end in obj.trace():
if near_end is not None:
serializer_a = get_serializer_for_model(near_end[0], prefix=NESTED_SERIALIZER_PREFIX)
near_end = serializer_a(near_end, many=True, context={'request': request}).data
for near_ends, cable, far_ends in obj.trace():
if near_ends:
serializer_a = get_serializer_for_model(near_ends[0], prefix=NESTED_SERIALIZER_PREFIX)
near_ends = serializer_a(near_ends, many=True, context={'request': request}).data
else:
# Path is split; stop here
break
if cable is not None:
if cable:
cable = serializers.TracedCableSerializer(cable[0], context={'request': request}).data
if far_end is not None:
serializer_b = get_serializer_for_model(far_end[0], prefix=NESTED_SERIALIZER_PREFIX)
far_end = serializer_b(far_end, many=True, context={'request': request}).data
if far_ends:
serializer_b = get_serializer_for_model(far_ends[0], prefix=NESTED_SERIALIZER_PREFIX)
far_ends = serializer_b(far_ends, many=True, context={'request': request}).data
path.append((near_end, cable, far_end))
path.append((near_ends, cable, far_ends))
return Response(path)