diff options
author | Marcello Stanisci <stanisci.m@gmail.com> | 2019-02-08 17:23:03 +0100 |
---|---|---|
committer | Marcello Stanisci <stanisci.m@gmail.com> | 2019-03-29 18:06:26 +0100 |
commit | efd3fa0187f9985537407f243ed6e0eeb89e73ed (patch) | |
tree | c3cf2364ee22ae93a71a84b46c0f2940cefa5114 /talerbank | |
parent | 95bf6b05ea4591411d183217d5853e2207b9ea72 (diff) | |
download | bank-efd3fa0187f9985537407f243ed6e0eeb89e73ed.tar.gz bank-efd3fa0187f9985537407f243ed6e0eeb89e73ed.tar.bz2 bank-efd3fa0187f9985537407f243ed6e0eeb89e73ed.zip |
5543. Let Jinja render abnormal balances.
Diffstat (limited to 'talerbank')
-rw-r--r-- | talerbank/app/templates/profile_page.html | 7 | ||||
-rw-r--r-- | talerbank/app/views.py | 3 | ||||
-rw-r--r-- | talerbank/jinja2.py | 16 |
3 files changed, 23 insertions, 3 deletions
diff --git a/talerbank/app/templates/profile_page.html b/talerbank/app/templates/profile_page.html index e5f9abc..8bf0baa 100644 --- a/talerbank/app/templates/profile_page.html +++ b/talerbank/app/templates/profile_page.html @@ -38,7 +38,12 @@ {% block content %} <section id="menu"> <p>Account: # {{ account_no }}</p> - <p>Current balance: <b>{{ sign }} {{ balance }}</b></p> + {% if is_valid_amount(balance) %} + <p>Current balance: <b>{{ sign }} {{ amount_stringify(balance) }}</b></p> + {% else %} + <p class="informational-fail">Current balance: <b>{{ INVALID AMOUNT, PLEASE REPORT }}</b></p> + {% endif%} + </section> <section id="main"> <article> diff --git a/talerbank/app/views.py b/talerbank/app/views.py index 6d87e22..2914341 100644 --- a/talerbank/app/views.py +++ b/talerbank/app/views.py @@ -247,8 +247,7 @@ def profile_page(request): fail_message, success_message, hint = get_session_hint(request, "profile_hint") context = dict( name=request.user.username, - balance=request.user.bankaccount.amount.stringify( - settings.TALER_DIGITS, pretty=True), + balance=request.user.bankaccount.amount, sign="-" if request.user.bankaccount.debit else "", fail_message=fail_message, success_message=success_message, diff --git a/talerbank/jinja2.py b/talerbank/jinja2.py index b646162..9c2c52e 100644 --- a/talerbank/jinja2.py +++ b/talerbank/jinja2.py @@ -20,6 +20,7 @@ # @brief Extends the Jinja2 API with custom functions. import os +import math from urllib.parse import urlparse from django.urls import reverse, get_script_prefix from django.conf import settings @@ -108,6 +109,19 @@ def env_get(name, default=None): # # @param options opaque argument (?) given from the caller. # @return Jinja2-specific object that contains the new definitions. +def is_valid_amount(amount): + if math.isnan(amount.value): + return False + + +## +# Stringifies amount. +# +# @param amount amount object. +# @return amount pretty string. +def amount_stringify(amount): + return amount.stringify(settings.TALER_DIGITS, pretty=True) + def environment(**options): env = Environment(**options) env.globals.update({ @@ -115,5 +129,7 @@ def environment(**options): 'url': url, 'settings_value': settings_value, 'env': env_get, + 'is_valid_amount': is_valid_amount + 'amount_stringify': amount_stringify }) return env |