add util.number_format -> number_format Jinja2 filter

Implement a `number_format` equivalent to PHP's version.

Signed-off-by: Kevin Morris <kevr@0cost.org>
This commit is contained in:
Kevin Morris 2021-06-19 01:14:10 -07:00
parent dc4cc9b604
commit ac1779b705
3 changed files with 11 additions and 0 deletions

View file

@ -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

View file

@ -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):

View file

@ -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"