From 436984eaace136d0ef06ce8821a8e078a20f89e3 Mon Sep 17 00:00:00 2001 From: Herculino Trotta Date: Sun, 17 Nov 2024 02:01:08 -0300 Subject: [PATCH] feat: display error when amount can't be displayed --- .../templatetags/currency_display.py | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/app/apps/transactions/templatetags/currency_display.py b/app/apps/transactions/templatetags/currency_display.py index 20d05d1..43106e6 100644 --- a/app/apps/transactions/templatetags/currency_display.py +++ b/app/apps/transactions/templatetags/currency_display.py @@ -1,3 +1,5 @@ +from decimal import Decimal + from django import template from django.utils.formats import number_format @@ -6,13 +8,16 @@ register = template.Library() def _format_string(prefix, amount, decimal_places, suffix): - formatted_amount = number_format( - value=abs(amount), decimal_pos=decimal_places, force_grouping=True - ) - if amount < 0: - return f"-{prefix}{formatted_amount}{suffix}" + if isinstance(amount, (int, float, Decimal)): + formatted_amount = number_format( + value=abs(amount), decimal_pos=decimal_places, force_grouping=True + ) + if amount < 0: + return f"-{prefix}{formatted_amount}{suffix}" + else: + return f"{prefix}{formatted_amount}{suffix}" else: - return f"{prefix}{formatted_amount}{suffix}" + return "ERR" @register.simple_tag(name="currency_display")