context_processors.py 1.2 KB

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