From 88c76a2a781cd75cc682b432433b331004e26149 Mon Sep 17 00:00:00 2001 From: Jean-Marie Favreau Date: Mon, 15 Apr 2024 16:43:47 +0200 Subject: [PATCH] Ajout des pages d'erreur Fix #8 --- src/agenda_culturel/static/images/pommes.svg | 157 ++++++++++++++++++ .../templates/page-erreur.html | 32 ++++ src/agenda_culturel/urls.py | 7 +- src/agenda_culturel/views.py | 14 +- 4 files changed, 208 insertions(+), 2 deletions(-) create mode 100644 src/agenda_culturel/static/images/pommes.svg create mode 100644 src/agenda_culturel/templates/page-erreur.html diff --git a/src/agenda_culturel/static/images/pommes.svg b/src/agenda_culturel/static/images/pommes.svg new file mode 100644 index 0000000..dac2b07 --- /dev/null +++ b/src/agenda_culturel/static/images/pommes.svg @@ -0,0 +1,157 @@ + + + + diff --git a/src/agenda_culturel/templates/page-erreur.html b/src/agenda_culturel/templates/page-erreur.html new file mode 100644 index 0000000..3153148 --- /dev/null +++ b/src/agenda_culturel/templates/page-erreur.html @@ -0,0 +1,32 @@ +{% extends "agenda_culturel/page.html" %} + + + +{% load i18n %} + +{% load static %} + +{% load static_content_extra %} + + +{% block title %} +Y'a un pépin +{% endblock %} + + + {% block content %} + +
+
+

Y'a un pépin (erreur {{ error }})

+
+

On a rencontré un pépin en cherchant la page que tu as demandé ! N'hésites pas à nous signaler + tout ça si tu penses qu'il y a un bug dans la compote.

+
+ +
+ + + + + {% endblock %} \ No newline at end of file diff --git a/src/agenda_culturel/urls.py b/src/agenda_culturel/urls.py index e13a1df..d352e31 100644 --- a/src/agenda_culturel/urls.py +++ b/src/agenda_culturel/urls.py @@ -64,6 +64,8 @@ urlpatterns = [ path("mquestions//answers/add", ModerationAnswerCreateView.as_view(), name="add_manswer"), path("mquestions//answers//edit", ModerationAnswerUpdateView.as_view(), name="edit_manswer"), path("mquestions//answers//delete", ModerationAnswerDeleteView.as_view(), name="delete_manswer"), + path("404/", page_not_found, name="page_not_found"), + path("500/", internal_server_error, name="internal_server_error"), ] if settings.DEBUG: @@ -77,4 +79,7 @@ js_info_dict = { } # jsi18n can be anything you like here -urlpatterns += [ path('jsi18n.js', JavaScriptCatalog.as_view(packages=['recurrence']), name='jsi18n'), ] \ No newline at end of file +urlpatterns += [ path('jsi18n.js', JavaScriptCatalog.as_view(packages=['recurrence']), name='jsi18n'), ] + +handler404 = 'agenda_culturel.views.page_not_found' +handler500 = 'agenda_culturel.views.internal_server_error' \ No newline at end of file diff --git a/src/agenda_culturel/views.py b/src/agenda_culturel/views.py index bfa5fcb..f5bb801 100644 --- a/src/agenda_culturel/views.py +++ b/src/agenda_culturel/views.py @@ -7,7 +7,7 @@ from django import forms from django.contrib.postgres.search import SearchQuery, SearchHeadline from django.core.exceptions import PermissionDenied -from django.http import HttpResponseRedirect +from django.http import HttpResponseRedirect, HttpResponse, HttpResponseNotFound from django.urls import reverse import urllib @@ -50,6 +50,12 @@ def get_event_qs(request): return Event.objects.filter(status=Event.STATUS.PUBLISHED) +def page_not_found(request, exception=None): + return render(request, 'page-erreur.html', status=404, context={"error": 404}) + + +def internal_server_error(request): + return render(request, 'page-erreur.html', status=500, context={"error": 500}) class CategoryCheckboxSelectMultiple(forms.CheckboxSelectMultiple): @@ -393,6 +399,12 @@ class ContactMessageCreateView(SuccessMessageMixin, CreateView): success_url = reverse_lazy('home') success_message = _('Your message has been sent successfully.') + def get_form(self, form_class=None): + if form_class is None: + form_class = self.get_form_class() + return form_class(**self.get_form_kwargs()) + + class ContactMessageUpdateView(SuccessMessageMixin, PermissionRequiredMixin, LoginRequiredMixin, UpdateView): model = ContactMessage