From efaa6b8cdec0f10adc62a6c8d89a7868598a0e37 Mon Sep 17 00:00:00 2001 From: Sebastian Gutzeit Date: Mon, 2 Oct 2023 10:19:18 +0200 Subject: [PATCH] App Toolbox: Integration LaTeX-Projekt --- datenwerft/templates/error.html | 17 ++++++ datenwerft/templates/index.html | 28 +++++----- datenwerft/urls.py | 13 ++++- datenwerft/views.py | 96 ++++++++++++++++++++++++++++++++- toolbox/views.py | 2 +- 5 files changed, 139 insertions(+), 17 deletions(-) create mode 100644 datenwerft/templates/error.html diff --git a/datenwerft/templates/error.html b/datenwerft/templates/error.html new file mode 100644 index 00000000..f4632190 --- /dev/null +++ b/datenwerft/templates/error.html @@ -0,0 +1,17 @@ +{% extends "navbar.html" %} +{% load static %} + +{% block title %}{{ error_code }} | {% endblock %} + +{% block content %} +
+ + +
+
+

{{ error_code }} – {{ error_text }}

+
+
+
{{ error_message }}
+
+{% endblock %} diff --git a/datenwerft/templates/index.html b/datenwerft/templates/index.html index fd1f3c36..3df6fc86 100644 --- a/datenwerft/templates/index.html +++ b/datenwerft/templates/index.html @@ -41,19 +41,19 @@
Metadatenpflege
{% else %} -
- - -
-
-

- Willkommen bei Datenwerft.HRO,
- der Web-Anwendung zur Datenerfassung
- der Hanse- und Universitätsstadt Rostock! -

-
-
- Anmeldung -
+
+ + +
+
+

+ Willkommen bei Datenwerft.HRO,
+ der Web-Anwendung zur Datenerfassung
+ der Hanse- und Universitätsstadt Rostock! +

+
+
+ Anmeldung +
{% endif %} {% endblock %} diff --git a/datenwerft/urls.py b/datenwerft/urls.py index 9d8f9244..951675c5 100644 --- a/datenwerft/urls.py +++ b/datenwerft/urls.py @@ -8,7 +8,18 @@ from datenmanagement import urls as datenmanagement_urls from bemas import urls as bemas_urls -from .views import IndexView +from .views import IndexView, error_400, error_403, error_404, error_405, error_410, \ + error_500, error_501, error_502, error_503 + +handler400 = error_400 +handler403 = error_403 +handler404 = error_404 +handler405 = error_405 +handler410 = error_410 +handler500 = error_500 +handler501 = error_501 +handler502 = error_502 +handler503 = error_503 api_urlpatterns = [] api_urlpatterns += accounts_urls.api_urlpatterns diff --git a/datenwerft/views.py b/datenwerft/views.py index f4955a35..0879ecaf 100644 --- a/datenwerft/views.py +++ b/datenwerft/views.py @@ -1,4 +1,4 @@ -from django.shortcuts import redirect +from django.shortcuts import redirect, render from django.views.generic.base import TemplateView from bemas.utils import is_bemas_user @@ -33,3 +33,97 @@ def dispatch(self, request, *args, **kwargs): return redirect('bemas:index') else: return super(IndexView, self).dispatch(request, *args, **kwargs) + + +def error_400(request, exception=None): + context = { + 'error_code': '400', + 'error_text': 'Bad request', + 'error_message': 'Die Anfrage kann nicht bearbeitet werden, da sie fehlerhaft war ' + '(fehlerhafte Syntax und/oder unbekannte Zeichen in der Anfrage).' + } + return render(request, 'error.html', context) + + +def error_403(request, exception=None): + context = { + 'error_code': '403', + 'error_text': 'Forbidden', + 'error_message': 'Sie dürfen auf die von Ihnen angefragte Ressource nicht zugreifen.' + } + return render(request, 'error.html', context) + + +def error_404(request, exception=None): + context = { + 'error_code': '404', + 'error_text': 'Not found', + 'error_message': 'Die von Ihnen angefragte Ressource ist nicht vorhanden. ' + 'Bitte überprüfen Sie die Schreibweise der Anforderung ' + '(vorallem Groß- und Kleinschreibung), Ihr Lesezeichen und/oder ' + 'die Seite, von der Sie gekommen sind.' + } + return render(request, 'error.html', context) + + +def error_405(request, exception=None): + context = { + 'error_code': '405', + 'error_text': 'Method not allowed', + 'error_message': 'Die Anforderungsmethode ist dem Server zwar bekannt ist, ' + 'wird aber von der Zielressource nicht unterstützt.' + } + return render(request, 'error.html', context) + + +def error_410(request, exception=None): + context = { + 'error_code': '410', + 'error_text': 'Gone', + 'error_message': 'Die von Ihnen angefragte Ressource existiert nicht mehr ' + 'und es ist keine Weiterleitung bekannt.' + } + return render(request, 'error.html', context) + + +def error_500(request, exception=None): + context = { + 'error_code': '500', + 'error_text': 'Internal server error', + 'error_message': 'Die Anfrage kann nicht bearbeitet werden, ' + 'da auf dem Server ein unerwarteter Fehler aufgetreten ist. ' + 'Bitte versuchen Sie es zu einem späteren Zeitpunkt wieder.' + } + return render(request, 'error.html', context) + + +def error_501(request, exception=None): + context = { + 'error_code': '501', + 'error_text': 'Not implemented', + 'error_message': 'Die Anfrage kann nicht bearbeitet werden, ' + 'da der Server nicht über die hierfür nötige Funktionalität verfügt.' + } + return render(request, 'error.html', context) + + +def error_502(request, exception=None): + context = { + 'error_code': '502', + 'error_text': 'Bad gateway', + 'error_message': 'Der Server, in diesem Fall ein Proxy, kann die Anfrage nicht ausführen, ' + 'weil im weiteren Verlauf ein Fehler aufgetreten ist. ' + 'Bitte versuchen Sie es zu einem späteren Zeitpunkt wieder.' + } + return render(request, 'error.html', context) + + +def error_503(request, exception=None): + context = { + 'error_code': '503', + 'error_text': 'Service unavailable', + 'error_message': 'Die Anfrage kann auf Grund von Server-Überlastungen, -Ausfällen ' + 'oder -Wartungsarbeiten zur Zeit nicht bearbeitet werden. ' + 'Bitte versuchen Sie es zu einem späteren Zeitpunkt wieder.' + } + return render(request, 'error.html', context) diff --git a/toolbox/views.py b/toolbox/views.py index 0480f008..77833312 100644 --- a/toolbox/views.py +++ b/toolbox/views.py @@ -243,7 +243,7 @@ def get(self, request, *args, **kwargs): def renderpdf(request): if request.method != 'POST': - ret = HttpResponseNotAllowed(['POST'], open('toolbox/405.html')) + ret = HttpResponseNotAllowed(['POST']) ret.reason_phrase = 'Need JSON for render info in POST body!' return ret else: