Add fallback to percent_change_display (fixes #89)

This commit is contained in:
R. Miles McCain 2021-01-11 12:11:27 -05:00
parent c86192d301
commit e0c165313b
No known key found for this signature in database
GPG Key ID: F1053629E2905557

View File

@ -61,25 +61,28 @@ def relative_stat_tone(
@register.simple_tag @register.simple_tag
def percent_change_display(start, end): def percent_change_display(start, end):
if start == None or end == None: try:
return SafeString("Δ n/a") if start == None or end == None:
if start == end: return SafeString("Δ n/a")
direction = "Δ " if start == end:
else: direction = "Δ "
direction = "↑ " if end > start else "↓ "
if start == 0 and end != 0:
pct_change = "100%"
elif start == 0:
pct_change = "0%"
else:
change = int(round(100 * abs(end - start) / max(start, 1)))
if change > 999:
return "> 999%"
else: else:
pct_change = str(change) + "%" direction = "↑ " if end > start else "↓ "
return SafeString(direction + pct_change) if start == 0 and end != 0:
pct_change = "100%"
elif start == 0:
pct_change = "0%"
else:
change = int(round(100 * abs(end - start) / max(start, 1)))
if change > 999:
return "> 999%"
else:
pct_change = str(change) + "%"
return SafeString(direction + pct_change)
except: # TODO: filter for specific issues
return SafeString("Δ ?")
@register.inclusion_tag("dashboard/includes/sidebar_footer.html") @register.inclusion_tag("dashboard/includes/sidebar_footer.html")