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"