context_processors.py 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  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 {
  30. 'MOMENTJS_LOCALE_URL': get_locale_url(get_language()),
  31. }
  32. def frontend_context(request):
  33. if request.include_frontend_context:
  34. return {
  35. 'frontend_context': request.frontend_context,
  36. }
  37. else:
  38. return {}