diff --git a/netbox/dcim/models.py b/netbox/dcim/models.py index eecc71b5b..e1d98a2d4 100644 --- a/netbox/dcim/models.py +++ b/netbox/dcim/models.py @@ -1974,8 +1974,8 @@ class PowerPort(CableTermination, ComponentModel): allocated_draw_total=Sum('allocated_draw'), ) ret = { - 'allocated': utilization['allocated_draw_total'], - 'maximum': utilization['maximum_draw_total'], + 'allocated': utilization['allocated_draw_total'] or 0, + 'maximum': utilization['maximum_draw_total'] or 0, 'outlet_count': len(outlet_ids), 'legs': [], } @@ -1990,8 +1990,8 @@ class PowerPort(CableTermination, ComponentModel): ) ret['legs'].append({ 'name': leg_name, - 'allocated': utilization['allocated_draw_total'], - 'maximum': utilization['maximum_draw_total'], + 'allocated': utilization['allocated_draw_total'] or 0, + 'maximum': utilization['maximum_draw_total'] or 0, 'outlet_count': len(outlet_ids), }) @@ -1999,8 +1999,8 @@ class PowerPort(CableTermination, ComponentModel): # Default to administratively defined values return { - 'allocated': self.allocated_draw, - 'maximum': self.maximum_draw, + 'allocated': self.allocated_draw or 0, + 'maximum': self.maximum_draw or 0, 'outlet_count': PowerOutlet.objects.filter(power_port=self).count(), 'legs': [], } diff --git a/netbox/utilities/templatetags/helpers.py b/netbox/utilities/templatetags/helpers.py index 353dbeb74..e6616d888 100644 --- a/netbox/utilities/templatetags/helpers.py +++ b/netbox/utilities/templatetags/helpers.py @@ -171,6 +171,8 @@ def divide(x, y): """ Return x/y (rounded). """ + if x is None or y is None: + return None return round(x / y) @@ -179,6 +181,8 @@ def percentage(x, y): """ Return x/y as a percentage. """ + if x is None or y is None: + return None return round(x / y * 100)