diff --git a/atst/filters.py b/atst/filters.py index 10e42379..83dd98fd 100644 --- a/atst/filters.py +++ b/atst/filters.py @@ -3,5 +3,14 @@ def iconSvg(name): return contents.read() +def dollars(value): + try: + numberValue = float(value) + except ValueError: + numberValue = 0 + return "${:,.0f}".format(numberValue) + + def register_filters(app): app.jinja_env.filters['iconSvg'] = iconSvg + app.jinja_env.filters['dollars'] = dollars diff --git a/templates/requests.html b/templates/requests.html index 53950e10..a22a884b 100644 --- a/templates/requests.html +++ b/templates/requests.html @@ -116,7 +116,7 @@ {{ r['full_name'] }} {% endif %} - ${{ r['annual_usage'] }} + {{ r['annual_usage'] | dollars }} {{ r['status'] }} {% endfor %} diff --git a/tests/test_filters.py b/tests/test_filters.py new file mode 100644 index 00000000..1ccad18d --- /dev/null +++ b/tests/test_filters.py @@ -0,0 +1,15 @@ +import pytest + +from atst.filters import dollars + + +@pytest.mark.parametrize("input,expected", [ + ('0', '$0'), + ('123.00', '$123'), + ('1234567', '$1,234,567'), + ('-1234', '$-1,234'), + ('one', '$0'), +]) +def test_dollar_fomatter(input, expected): + assert dollars(input) == expected +