diff --git a/ihatemoney/run.py b/ihatemoney/run.py index b6c8cbb2..e084e5bc 100644 --- a/ihatemoney/run.py +++ b/ihatemoney/run.py @@ -3,7 +3,7 @@ import os.path import warnings from flask import Flask, g, render_template, request, session -from flask_babel import Babel +from flask_babel import Babel, format_currency from flask_mail import Mail from flask_migrate import Migrate, stamp, upgrade from werkzeug.middleware.proxy_fix import ProxyFix @@ -153,6 +153,22 @@ def create_app( # Translations babel = Babel(app) + # Undocumented currencyformat filter from flask_babel is forwarding to Babel format_currency + # We overwrite it to remove the currency sign ¤ when there is no currency + def currencyformat_nc(number, currency, *args, **kwargs): + """ + Same as flask_babel.Babel.currencyformat, but without the "no currency ¤" sign + when there is no currency. + """ + return format_currency( + number, + currency if currency != CurrencyConverter.no_currency else "", + *args, + **kwargs + ).strip() + + app.jinja_env.filters["currencyformat_nc"] = currencyformat_nc + @babel.localeselector def get_locale(): # get the lang from the session if defined, fallback on the browser "accept diff --git a/ihatemoney/templates/list_bills.html b/ihatemoney/templates/list_bills.html index 88da9973..30f8bc07 100644 --- a/ihatemoney/templates/list_bills.html +++ b/ihatemoney/templates/list_bills.html @@ -1,8 +1,7 @@ {% extends "sidebar_table_layout.html" %} {%- macro bill_amount(bill, currency=bill.original_currency, amount=bill.amount) %} - {# Undocumented currencyformat filter from flask_babel is forwarding to Babel format_currency #} - {{ amount|currencyformat(currency if currency != 'XXX' else '') }} ({{ _("%(amount)s each", amount=bill.pay_each_default(amount)|currencyformat(currency if currency != 'XXX' else '')) }}) + {{ amount|currencyformat_nc(currency) }} ({{ _("%(amount)s each", amount=bill.pay_each_default(amount)|currencyformat_nc(currency)) }}) {% endmacro -%} {% block title %} - {{ g.project.name }}{% endblock %}