context_processors.py 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. from django.utils.translation import get_language
  2. from .. import __version__
  3. from .momentjs import get_locale_url
  4. def misago_version(request):
  5. return {"MISAGO_VERSION": __version__}
  6. def site_address(request):
  7. if request.is_secure():
  8. site_protocol = "https"
  9. address_template = "https://%s"
  10. else:
  11. site_protocol = "http"
  12. address_template = "http://%s"
  13. host = request.get_host()
  14. return {
  15. "SITE_PROTOCOL": site_protocol,
  16. "SITE_HOST": host,
  17. "SITE_ADDRESS": address_template % host,
  18. "REQUEST_PATH": request.path,
  19. }
  20. def current_link(request):
  21. if not request.resolver_match or request.frontend_context.get("CURRENT_LINK"):
  22. return {}
  23. url_name = request.resolver_match.url_name
  24. if request.resolver_match.namespaces:
  25. namespaces = ":".join(request.resolver_match.namespaces)
  26. link_name = "%s:%s" % (namespaces, url_name)
  27. else:
  28. link_name = url_name
  29. request.frontend_context.update({"CURRENT_LINK": link_name})
  30. return {}
  31. def momentjs_locale(request):
  32. return {"MOMENTJS_LOCALE_URL": get_locale_url(get_language())}
  33. def frontend_context(request):
  34. if request.include_frontend_context:
  35. return {"frontend_context": request.frontend_context}
  36. return {}