Séparation des vues erreurs

This commit is contained in:
SebF 2025-03-24 10:26:59 +01:00
parent 9a99ec42ef
commit 47feea263a
4 changed files with 44 additions and 34 deletions

View File

@ -17,6 +17,10 @@ from .sitemaps import (
) )
from .models import Event, Place, Organisation, Category from .models import Event, Place, Organisation, Category
from .views import ( from .views import (
# Errors
internal_server_error,
page_not_found,
# TODO pas encore trié
home, home,
week_view, week_view,
month_view, month_view,
@ -81,8 +85,6 @@ from .views import (
event_search_full, event_search_full,
recurrent_imports, recurrent_imports,
delete_cm_spam, delete_cm_spam,
page_not_found,
internal_server_error,
PlaceCreateView, PlaceCreateView,
PlaceFromEventCreateView, PlaceFromEventCreateView,
moderate_from_date, moderate_from_date,
@ -136,6 +138,10 @@ sitemaps = {
} }
urlpatterns = [ urlpatterns = [
# Errors
path("500/", internal_server_error, name="internal_server_error"),
path("404/", page_not_found, name="page_not_found"),
# TODO pas encore trié
path("", home, name="home"), path("", home, name="home"),
path("cat:<cat>/", home, name="home_category"), path("cat:<cat>/", home, name="home_category"),
path( path(
@ -369,8 +375,6 @@ urlpatterns = [
update_duplicate_event, update_duplicate_event,
name="update_event", name="update_event",
), ),
path("404/", page_not_found, name="page_not_found"),
path("500/", internal_server_error, name="internal_server_error"),
path( path(
"organisme/<int:pk>/past", "organisme/<int:pk>/past",
OrganisationDetailViewPast.as_view(), OrganisationDetailViewPast.as_view(),

View File

@ -1 +1,2 @@
from .oldviews import * from .oldviews import *
from .errors import *

View File

@ -0,0 +1,35 @@
from django.contrib.auth.decorators import login_required, permission_required
from django.core.mail import mail_admins
from django.shortcuts import render
from django.utils.translation import gettext_lazy as _
from ..models import Event
def page_not_found(request, exception=None):
return render(request, "page-erreur.html", status=404, context={"error": 404})
def internal_server_error(request):
try:
mail_admins(
request.site.name + _(": error 500"),
_("An internal error has occurred on site {} at address {}.").format(
request.site.name, request.build_absolute_uri()
),
)
except Exception:
pass
return render(request, "page-erreur.html", status=500, context={"error": 500})
@login_required(login_url="/accounts/login/")
@permission_required("agenda_culturel.change_event")
def error_next_event(request, pk):
obj = Event.objects.filter(pk=pk).first()
return render(
request,
"agenda_culturel/event_next_error_message.html",
{"pk": pk, "object": obj},
)

View File

@ -13,7 +13,6 @@ from django.contrib.auth.mixins import (
) )
from django.contrib.messages.views import SuccessMessageMixin from django.contrib.messages.views import SuccessMessageMixin
from django.core.cache import cache from django.core.cache import cache
from django.core.mail import mail_admins
from django.core.paginator import EmptyPage, PageNotAnInteger, Paginator from django.core.paginator import EmptyPage, PageNotAnInteger, Paginator
from django.db.models import Count, F, Func, OuterRef, Q, Subquery from django.db.models import Count, F, Func, OuterRef, Q, Subquery
from django.db.models.functions import TruncMonth from django.db.models.functions import TruncMonth
@ -180,23 +179,6 @@ def get_event_qs(request):
return Event.objects.filter(status=Event.STATUS.PUBLISHED) 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):
try:
mail_admins(
request.site.name + _(": error 500"),
_("An internal error has occurred on site {} at address {}.").format(
request.site.name, request.build_absolute_uri()
),
)
except Exception:
pass
return render(request, "page-erreur.html", status=500, context={"error": 500})
def thank_you(request): def thank_you(request):
return render(request, "agenda_culturel/thank_you.html") return render(request, "agenda_culturel/thank_you.html")
@ -681,18 +663,6 @@ class EventModerateView(
return self.object.get_absolute_url() return self.object.get_absolute_url()
@login_required(login_url="/accounts/login/")
@permission_required("agenda_culturel.change_event")
def error_next_event(request, pk):
obj = Event.objects.filter(pk=pk).first()
return render(
request,
"agenda_culturel/event_next_error_message.html",
{"pk": pk, "object": obj},
)
@login_required(login_url="/accounts/login/") @login_required(login_url="/accounts/login/")
@permission_required("agenda_culturel.change_event") @permission_required("agenda_culturel.change_event")
def moderate_event_next(request, pk): def moderate_event_next(request, pk):