context_processors.py 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. from django.templatetags.static import static
  2. from django.urls import reverse
  3. from django.utils.translation import get_language
  4. from . import settings
  5. def conf(request):
  6. return {
  7. "BLANK_AVATAR_URL": (
  8. request.settings.blank_avatar or static(settings.MISAGO_BLANK_AVATAR)
  9. ),
  10. "DEBUG": settings.DEBUG,
  11. "LANGUAGE_CODE_SHORT": get_language()[:2],
  12. "LOGIN_REDIRECT_URL": settings.LOGIN_REDIRECT_URL,
  13. "LOGIN_URL": settings.LOGIN_URL,
  14. "LOGOUT_URL": settings.LOGOUT_URL,
  15. "THREADS_ON_INDEX": settings.MISAGO_THREADS_ON_INDEX,
  16. "settings": request.settings,
  17. }
  18. def og_image(request):
  19. og_image = request.settings.get("og_image")
  20. if not og_image["value"]:
  21. return {"og_image": None}
  22. return {
  23. "og_image": {
  24. "url": og_image["value"],
  25. "width": og_image["width"],
  26. "height": og_image["height"],
  27. }
  28. }
  29. def preload_settings_json(request):
  30. preloaded_settings = request.settings.get_public_settings()
  31. delegate_auth = request.settings.enable_oauth2_client
  32. if request.settings.enable_oauth2_client:
  33. login_url = reverse("misago:oauth2-login")
  34. else:
  35. login_url = reverse(settings.LOGIN_URL)
  36. preloaded_settings.update(
  37. {
  38. "DELEGATE_AUTH": delegate_auth,
  39. "LOGIN_API_URL": settings.MISAGO_LOGIN_API_URL,
  40. "LOGIN_REDIRECT_URL": reverse(settings.LOGIN_REDIRECT_URL),
  41. "LOGIN_URL": login_url,
  42. "LOGOUT_URL": reverse(settings.LOGOUT_URL),
  43. }
  44. )
  45. request.frontend_context.update(
  46. {
  47. "BLANK_AVATAR_URL": (
  48. request.settings.blank_avatar or static(settings.MISAGO_BLANK_AVATAR)
  49. ),
  50. "CSRF_COOKIE_NAME": settings.CSRF_COOKIE_NAME,
  51. "ENABLE_DELETE_OWN_ACCOUNT": (
  52. not delegate_auth and request.settings.allow_delete_own_account
  53. ),
  54. "ENABLE_DOWNLOAD_OWN_DATA": request.settings.allow_data_downloads,
  55. "MISAGO_PATH": reverse("misago:index"),
  56. "SETTINGS": preloaded_settings,
  57. "STATIC_URL": settings.STATIC_URL,
  58. "THREADS_ON_INDEX": settings.MISAGO_THREADS_ON_INDEX,
  59. }
  60. )
  61. return {}