errors.py 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. from django.template import RequestContext
  2. from django.utils.translation import ugettext as _
  3. from misago.shortcuts import render_to_response, 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=None):
  8. if message:
  9. message = unicode(message)
  10. if request.is_ajax():
  11. if not message:
  12. if error == 404:
  13. message = _("Requested page could not be loaded.")
  14. if error == 403:
  15. message = _("You don't have permission to see requested page.")
  16. return json_response(request, status=error, message=message)
  17. response = render_to_response(('error%s.html' % error),
  18. {
  19. 'message': message,
  20. 'hide_signin': True,
  21. 'exception_response': True,
  22. },
  23. context_instance=RequestContext(request));
  24. response.status_code = error
  25. return response
  26. def error403(request, message=None):
  27. return error_view(request, 403, message)
  28. def error404(request, message=None):
  29. return error_view(request, 404, message)
  30. def error_banned(request, user=None, ban=None):
  31. if not ban:
  32. ban = request.ban
  33. if request.is_ajax():
  34. return json_response(request, status=403, message=_("You are banned."))
  35. response = render_to_response('error403_banned.html',
  36. {
  37. 'banned_user': user,
  38. 'ban': ban,
  39. 'hide_signin': True,
  40. 'exception_response': True,
  41. },
  42. context_instance=RequestContext(request));
  43. response.status_code = 403
  44. return response