context_processors.py 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. from django.utils.translation import get_language
  2. from .. import __version__
  3. from ..hooks import context_processors as context_processors_hooks
  4. from .momentjs import get_locale_url
  5. def misago_version(request):
  6. return {"MISAGO_VERSION": __version__}
  7. def request_path(request):
  8. return {"request_path": request.path}
  9. def current_link(request):
  10. if not request.resolver_match or request.frontend_context.get("CURRENT_LINK"):
  11. return {}
  12. url_name = request.resolver_match.url_name
  13. if request.resolver_match.namespaces:
  14. namespaces = ":".join(request.resolver_match.namespaces)
  15. link_name = "%s:%s" % (namespaces, url_name)
  16. else:
  17. link_name = url_name
  18. request.frontend_context.update({"CURRENT_LINK": link_name})
  19. return {}
  20. def momentjs_locale(request):
  21. return {"MOMENTJS_LOCALE_URL": get_locale_url(get_language())}
  22. def frontend_context(request):
  23. if request.include_frontend_context:
  24. return {"frontend_context": request.frontend_context}
  25. return {}
  26. def hooks(request):
  27. context = {}
  28. for hook in context_processors_hooks:
  29. context.update(hook(request))
  30. return context