diff --git a/Pipfile b/Pipfile index a84969ea..08d9e35b 100644 --- a/Pipfile +++ b/Pipfile @@ -26,6 +26,7 @@ azure-storage = "*" azure-storage-common = "*" boto3 = "*" celery = "*" +inflect = "*" [dev-packages] bandit = "*" diff --git a/atst/filters.py b/atst/filters.py index 48b8166c..408b5afa 100644 --- a/atst/filters.py +++ b/atst/filters.py @@ -1,5 +1,6 @@ import re import datetime +import inflect from atst.utils.localization import translate from flask import render_template from jinja2 import contextfilter @@ -67,6 +68,14 @@ def renderAuditEvent(event): return render_template("audit_log/events/default.html", event=event) +def numberToWords(integer): + return inflect.engine().number_to_words(integer) + + +def pluralize(word, number): + return inflect.engine().plural(word, number) + + def register_filters(app): app.jinja_env.filters["iconSvg"] = iconSvg app.jinja_env.filters["dollars"] = dollars @@ -76,6 +85,8 @@ def register_filters(app): app.jinja_env.filters["pageWindow"] = pageWindow app.jinja_env.filters["renderAuditEvent"] = renderAuditEvent app.jinja_env.filters["withExtraParams"] = with_extra_params + app.jinja_env.filters["numberToWords"] = numberToWords + app.jinja_env.filters["pluralize"] = pluralize @contextfilter def translateWithoutCache(context, *kwargs): diff --git a/templates/portfolios/applications/settings.html b/templates/portfolios/applications/settings.html index 574dd0b9..7ab84a3f 100644 --- a/templates/portfolios/applications/settings.html +++ b/templates/portfolios/applications/settings.html @@ -176,15 +176,35 @@ +