33 lines
944 B
Python
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
|