views.py 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. from django.conf import settings
  2. from django.http import HttpResponse, Http404
  3. from django.shortcuts import render
  4. from django.utils import timezone
  5. from django.utils.translation import get_language
  6. from django.views import i18n
  7. from django.views.decorators.http import last_modified
  8. from django.views.decorators.cache import cache_page, never_cache
  9. from misago.forums.lists import get_forums_list
  10. from misago.users.online.ranks import get_ranks_online
  11. from misago.core import momentjs
  12. def forum_index(request):
  13. return render(request, 'misago/index.html', {
  14. 'categories': get_forums_list(request.user),
  15. 'ranks_online': get_ranks_online(request.user),
  16. })
  17. @cache_page(86400, key_prefix='misagojsi18n')
  18. @last_modified(lambda req, **kw: timezone.now())
  19. def javascript_catalog(request):
  20. return i18n.javascript_catalog(request, 'djangojs', None)
  21. @cache_page(86400, key_prefix='momentjsi18n')
  22. @last_modified(lambda req, **kw: timezone.now())
  23. def momentjs_catalog(request):
  24. locale_path = momentjs.get_locale_path(get_language())
  25. if locale_path:
  26. with open (locale_path, "r") as locale_file:
  27. locale = locale_file.read()
  28. else:
  29. locale = "";
  30. return HttpResponse(locale,
  31. content_type='application/javascript; charset=utf-8')
  32. @never_cache
  33. def preload_data(request):
  34. if not (settings.DEBUG or settings._MISAGO_JS_DEBUG):
  35. raise Http404()
  36. return render(request, 'misago/preloaded_data.js',
  37. content_type='application/javascript; charset=utf-8')
  38. def noscript(request, title=None, message=None):
  39. return render(request, 'misago/noscript.html', {
  40. 'title': title,
  41. 'message': message,
  42. })