Files
allmende-payment-system/src/allmende_payment_system/tools.py

33 lines
944 B
Python

import locale
import numbers
import os
from starlette.templating import Jinja2Templates
TRANSACTION_TYPE_DE = {
"deposit": "Einzahlung",
"withdrawal": "Auszahlung",
"expense": "Auslage",
"order": "Einkauf",
}
UNITS_OF_MEASURE = {"piece": "Stück"}
def format_number(value: float):
try:
return f"{value:.2f}".replace(".", ",")
except TypeError:
return value
def get_jinja_renderer() -> Jinja2Templates:
renderer = Jinja2Templates(directory="src/allmende_payment_system/templates")
renderer.env.filters["transaction_type_de"] = lambda x: TRANSACTION_TYPE_DE[x]
renderer.env.filters["units_of_measure_de"] = lambda x: UNITS_OF_MEASURE.get(x, x)
renderer.env.filters["format_number"] = format_number
renderer.env.filters["timestamp_de"] = lambda x: x.strftime("%d.%m.%Y %H:%M")
renderer.env.globals["production_mode"] = "APS_PRODUCTION_MODE" in os.environ
return renderer