46 lines
1 KiB
Python
46 lines
1 KiB
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,
|
|
)
|