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