context_processors.py 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  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. BLANK_AVATAR_URL = static(settings.MISAGO_BLANK_AVATAR)
  6. def conf(request):
  7. return {
  8. "BLANK_AVATAR_URL": request.settings.blank_avatar or BLANK_AVATAR_URL,
  9. "DEBUG": settings.DEBUG,
  10. "LANGUAGE_CODE_SHORT": get_language()[:2],
  11. "LOGIN_REDIRECT_URL": settings.LOGIN_REDIRECT_URL,
  12. "LOGIN_URL": settings.LOGIN_URL,
  13. "LOGOUT_URL": settings.LOGOUT_URL,
  14. "THREADS_ON_INDEX": settings.MISAGO_THREADS_ON_INDEX,
  15. "settings": request.settings,
  16. }
  17. def og_image(request):
  18. og_image = request.settings.get("og_image")
  19. if not og_image["value"]:
  20. return {"og_image": None}
  21. return {
  22. "og_image": {
  23. "url": og_image["value"],
  24. "width": og_image["width"],
  25. "height": og_image["height"],
  26. }
  27. }
  28. def preload_settings_json(request):
  29. preloaded_settings = request.settings.get_public_settings()
  30. preloaded_settings.update(
  31. {
  32. "LOGIN_API_URL": settings.MISAGO_LOGIN_API_URL,
  33. "LOGIN_REDIRECT_URL": reverse(settings.LOGIN_REDIRECT_URL),
  34. "LOGIN_URL": reverse(settings.LOGIN_URL),
  35. "LOGOUT_URL": reverse(settings.LOGOUT_URL),
  36. }
  37. )
  38. request.frontend_context.update(
  39. {
  40. "BLANK_AVATAR_URL": request.settings.blank_avatar or BLANK_AVATAR_URL,
  41. "CSRF_COOKIE_NAME": settings.CSRF_COOKIE_NAME,
  42. "ENABLE_DELETE_OWN_ACCOUNT": request.settings.allow_delete_own_account,
  43. "ENABLE_DOWNLOAD_OWN_DATA": request.settings.allow_data_downloads,
  44. "MISAGO_PATH": reverse("misago:index"),
  45. "SETTINGS": preloaded_settings,
  46. "STATIC_URL": settings.STATIC_URL,
  47. "THREADS_ON_INDEX": settings.MISAGO_THREADS_ON_INDEX,
  48. }
  49. )
  50. return {}