Merge pull request #5672 from cpmills1975/5650-render-incomplete-lengths

Indicate when cable length is not definitive
This commit is contained in:
Jeremy Stretch
2021-03-25 11:44:00 -04:00
committed by GitHub
3 changed files with 12 additions and 4 deletions

View File

@@ -480,13 +480,17 @@ class CablePath(models.Model):
def get_total_length(self):
"""
Return the sum of the length of each cable in the path.
Return a tuple containing the sum of the length of each cable in the path
and a flag indicating whether the length is definitive.
"""
cable_ids = [
# Starting from the first element, every third element in the path should be a Cable
decompile_path_node(self.path[i])[1] for i in range(0, len(self.path), 3)
]
return Cable.objects.filter(id__in=cable_ids).aggregate(total=Sum('_abs_length'))['total']
cables = Cable.objects.filter(id__in=cable_ids, _abs_length__isnull=False)
total_length = cables.aggregate(total=Sum('_abs_length'))['total']
is_definitive = len(cables) == len(cable_ids)
return (total_length, is_definitive)
def get_split_nodes(self):
"""