jinja_templates.py 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. from datetime import datetime
  2. from fastapi.templating import Jinja2Templates
  3. templates = Jinja2Templates(directory="templates")
  4. def number_format(input: float) -> str:
  5. return format(input, "0,.2f").replace(".", ":").replace(",", ".").replace(":", ",")
  6. def date_format(input: datetime) -> str:
  7. if input is None:
  8. return ""
  9. return input.strftime("%d.%m.%Y")
  10. def date_format2(input: datetime) -> str:
  11. if input is None:
  12. return ""
  13. if isinstance(input, str):
  14. return input[:10]
  15. return input.strftime("%Y-%m-%d")
  16. def checked(input: str) -> str:
  17. if input in ("J", "1", 1, True):
  18. return "checked"
  19. return ""
  20. def selected(input: str) -> str:
  21. if input in ("J", "1", 1, True):
  22. return "selected"
  23. return ""
  24. def truefalse(input: str) -> str:
  25. if input in ("J", "1", 1, True):
  26. return "true"
  27. return "false"
  28. def show(input: str) -> str:
  29. if input in ("J", "1", 1, True):
  30. return "show"
  31. return ""
  32. templates.env.filters["number_format"] = number_format
  33. templates.env.filters["date_format"] = date_format
  34. templates.env.filters["date_format2"] = date_format2
  35. templates.env.filters["checked"] = checked
  36. templates.env.filters["selected"] = selected
  37. templates.env.filters["truefalse"] = truefalse
  38. templates.env.filters["show"] = show