context_processors.py 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  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_info,
  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 = '{}:{}'.format(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. else:
  34. return {}