34 lines
882 B
Python
34 lines
882 B
Python
|
import traceback
|
||
|
|
||
|
from django.shortcuts import render
|
||
|
from django.utils.translation import gettext as _
|
||
|
|
||
|
|
||
|
def error(request, context, status):
|
||
|
return render(request, 'error.html', context=context, status=status)
|
||
|
|
||
|
|
||
|
def error404(request, exception=None):
|
||
|
# TODO: "panic: go back"
|
||
|
return render(request, 'generic-message.html', {
|
||
|
'title': _('404 error'),
|
||
|
'message': _('Could not find page "%s"') % request.path,
|
||
|
}, status=404)
|
||
|
|
||
|
|
||
|
def error403(request, exception=None):
|
||
|
return error(request, {
|
||
|
'id': 'unauthorized_access',
|
||
|
'description': _('no permission for %s') % request.path,
|
||
|
'code': 403,
|
||
|
}, 403)
|
||
|
|
||
|
|
||
|
def error500(request):
|
||
|
return error(request, {
|
||
|
'id': 'invalid_state',
|
||
|
'description': _('corrupt page %s') % request.path,
|
||
|
'traceback': traceback.format_exc(),
|
||
|
'code': 500,
|
||
|
}, 500)
|