From ac1779b705d9b0ad87deaa1856e9b5e05d9ae944 Mon Sep 17 00:00:00 2001 From: Kevin Morris Date: Sat, 19 Jun 2021 01:14:10 -0700 Subject: [PATCH] add util.number_format -> `number_format` Jinja2 filter Implement a `number_format` equivalent to PHP's version. Signed-off-by: Kevin Morris --- aurweb/templates.py | 1 + aurweb/util.py | 5 +++++ test/test_util.py | 5 +++++ 3 files changed, 11 insertions(+) diff --git a/aurweb/templates.py b/aurweb/templates.py index b8853593..8b507425 100644 --- a/aurweb/templates.py +++ b/aurweb/templates.py @@ -30,6 +30,7 @@ env.filters["as_timezone"] = util.as_timezone env.filters["dedupe_qs"] = util.dedupe_qs env.filters["urlencode"] = quote_plus env.filters["get_vote"] = util.get_vote +env.filters["number_format"] = util.number_format # Add captcha filters. env.filters["captcha_salt"] = captcha.captcha_salt_filter diff --git a/aurweb/util.py b/aurweb/util.py index adbff755..539af40e 100644 --- a/aurweb/util.py +++ b/aurweb/util.py @@ -150,6 +150,11 @@ def get_vote(voteinfo, request: fastapi.Request): return voteinfo.tu_votes.filter(TUVote.User == request.user).first() +def number_format(value: float, places: int): + """ A converter function similar to PHP's number_format. """ + return f"{value:.{places}f}" + + def jsonify(obj): """ Perform a conversion on obj if it's needed. """ if isinstance(obj, datetime): diff --git a/test/test_util.py b/test/test_util.py index 074de494..f54a98a0 100644 --- a/test/test_util.py +++ b/test/test_util.py @@ -30,3 +30,8 @@ def test_dedupe_qs(): # Add key1=changed and key2=changed to the query and dedupe it. deduped = util.dedupe_qs(query_string, "key1=changed", "key3=changed") assert deduped == "key2=blah&key1=changed&key3=changed" + + +def test_number_format(): + assert util.number_format(0.222, 2) == "0.22" + assert util.number_format(0.226, 2) == "0.23"