72 lines
2.3 KiB
Python
72 lines
2.3 KiB
Python
from django.shortcuts import render
|
|
from django.utils.translation import gettext as _
|
|
|
|
|
|
def _render_error(request, *, status: int, title: str, code: str, heading: str, message: str):
|
|
return render(
|
|
request,
|
|
'workflows/errors/error_page.html',
|
|
{
|
|
'error_title': title,
|
|
'error_code': code,
|
|
'error_heading': heading,
|
|
'error_message': message,
|
|
},
|
|
status=status,
|
|
)
|
|
|
|
|
|
def bad_request(request, exception=None):
|
|
return _render_error(
|
|
request,
|
|
status=400,
|
|
title=_('Ungültige Anfrage'),
|
|
code='400',
|
|
heading=_('Die Anfrage konnte nicht verarbeitet werden'),
|
|
message=_('Die übermittelten Daten waren unvollständig oder ungültig. Bitte gehen Sie zurück und versuchen Sie es erneut.'),
|
|
)
|
|
|
|
|
|
def permission_denied(request, exception=None):
|
|
return _render_error(
|
|
request,
|
|
status=403,
|
|
title=_('Kein Zugriff'),
|
|
code='403',
|
|
heading=_('Für diese Seite fehlt die Berechtigung'),
|
|
message=_('Sie sind angemeldet, aber für diesen Bereich nicht freigeschaltet. Wenn das nicht erwartet ist, wenden Sie sich an die Administration.'),
|
|
)
|
|
|
|
|
|
def not_found(request, exception=None):
|
|
return _render_error(
|
|
request,
|
|
status=404,
|
|
title=_('Seite nicht gefunden'),
|
|
code='404',
|
|
heading=_('Diese Seite gibt es nicht'),
|
|
message=_('Die gewünschte Adresse ist nicht vorhanden oder wurde verschoben. Nutzen Sie die Startseite oder das Dashboard, um weiterzugehen.'),
|
|
)
|
|
|
|
|
|
def server_error(request):
|
|
return _render_error(
|
|
request,
|
|
status=500,
|
|
title=_('Serverfehler'),
|
|
code='500',
|
|
heading=_('Etwas ist schiefgelaufen'),
|
|
message=_('Der Fehler wurde nicht sauber verarbeitet. Bitte laden Sie die Seite neu. Wenn das Problem bleibt, prüfen Sie die Server-Logs.'),
|
|
)
|
|
|
|
|
|
def csrf_failure(request, reason=''):
|
|
return _render_error(
|
|
request,
|
|
status=400,
|
|
title=_('Sicherheitsprüfung fehlgeschlagen'),
|
|
code='400',
|
|
heading=_('Die Sitzung konnte nicht bestätigt werden'),
|
|
message=_('Bitte laden Sie die Seite neu und senden Sie das Formular erneut. Wenn das weiter passiert, prüfen Sie Host-, HTTPS- und CSRF-Einstellungen.'),
|
|
)
|