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.'), )