Files
workdock-platform/backend/workflows/error_views.py
Md Bayazid Bostame 6b305e930d
Some checks failed
CI / python-validation (push) Has been cancelled
CI / docker-release-gate (push) Has been cancelled
i18n / compile-translations (push) Has been cancelled
feat: add branded error pages
2026-04-01 17:36:18 +02:00

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