feat: add branded error pages
This commit is contained in:
71
backend/workflows/error_views.py
Normal file
71
backend/workflows/error_views.py
Normal file
@@ -0,0 +1,71 @@
|
||||
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.'),
|
||||
)
|
||||
Reference in New Issue
Block a user