aboutsummaryrefslogtreecommitdiff
path: root/budget
diff options
context:
space:
mode:
Diffstat (limited to 'budget')
-rw-r--r--budget/run.py5
-rw-r--r--budget/templates/list_bills.html2
-rw-r--r--budget/utils.py14
3 files changed, 20 insertions, 1 deletions
diff --git a/budget/run.py b/budget/run.py
index 51670f2..807ad12 100644
--- a/budget/run.py
+++ b/budget/run.py
@@ -9,6 +9,8 @@ from raven.contrib.flask import Sentry
from web import main, db, mail
from api import api
from utils import PrefixedWSGI
+from utils import minimal_round
+
app = Flask(__name__)
@@ -37,6 +39,9 @@ configure()
app.register_blueprint(main)
app.register_blueprint(api)
+# custom jinja2 filters
+app.jinja_env.filters['minimal_round'] = minimal_round
+
# db
db.init_app(app)
db.app = app
diff --git a/budget/templates/list_bills.html b/budget/templates/list_bills.html
index b0ec89a..1d8e922 100644
--- a/budget/templates/list_bills.html
+++ b/budget/templates/list_bills.html
@@ -63,7 +63,7 @@
{% set balance = g.project.balance %}
{% for member in g.project.members | sort(attribute='name') if member.activated or balance[member.id] != 0 %}
<tr id="bal-member-{{ member.id }}" action={% if member.activated %}delete{% else %}reactivate{% endif %}>
- <td class="balance-name">{{ member.name }} <span class="light">(x{{ member.weight }})</span></td>
+ <td class="balance-name">{{ member.name }} <span class="light">(x{{ member.weight|minimal_round(1) }})</span></td>
{% if member.activated %}
<td>
<form class="action delete" action="{{ url_for(".remove_member", member_id=member.id) }}" method="POST">
diff --git a/budget/utils.py b/budget/utils.py
index 7717aaa..c849af0 100644
--- a/budget/utils.py
+++ b/budget/utils.py
@@ -1,6 +1,7 @@
import re
import inspect
+from jinja2 import filters
from flask import redirect
from werkzeug.routing import HTTPException, RoutingException
@@ -63,3 +64,16 @@ class PrefixedWSGI(object):
if scheme:
environ['wsgi.url_scheme'] = scheme
return self.wsgi_app(environ, start_response)
+
+
+def minimal_round(*args, **kw):
+ """ Jinja2 filter: rounds, but display only non-zero decimals
+
+ from http://stackoverflow.com/questions/28458524/
+ """
+ # Use the original round filter, to deal with the extra arguments
+ res = filters.do_round(*args, **kw)
+ # Test if the result is equivalent to an integer and
+ # return depending on it
+ ires = int(res)
+ return (res if res != ires else ires)