errors.py 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. from django.template import RequestContext
  2. from django.utils.translation import ugettext as _
  3. from misago.utils.views import json_response
  4. def error_not_implemented(request, *args, **kwargs):
  5. """Generic "NOT IMPLEMENTED!" Error"""
  6. raise NotImplementedError("This action is not implemented!")
  7. def error_view(request, error, message):
  8. if request.is_ajax():
  9. if not message:
  10. if error == 404:
  11. message = _("Requested page could not be loaded.")
  12. if error == 403:
  13. message = _("You don't have permission to see requested page.")
  14. return json_response(request, status=error, message=message)
  15. response = request.theme.render_to_response(('error%s.html' % error),
  16. {
  17. 'message': message,
  18. 'hide_signin': True,
  19. 'exception_response': True,
  20. },
  21. context_instance=RequestContext(request));
  22. response.status_code = error
  23. return response
  24. def error403(request, message=None):
  25. return error_view(request, 403, message)
  26. def error404(request, message=None):
  27. return error_view(request, 404, message)
  28. def error_banned(request, user=None, ban=None):
  29. if not ban:
  30. ban = request.ban
  31. if request.is_ajax():
  32. return json_response(request, status=403, message=_("You are banned."))
  33. response = request.theme.render_to_response('error403_banned.html',
  34. {
  35. 'banned_user': user,
  36. 'ban': ban,
  37. 'hide_signin': True,
  38. 'exception_response': True,
  39. },
  40. context_instance=RequestContext(request));
  41. response.status_code = 403
  42. return response