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

View File

@ -1 +1,2 @@
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.core.cache import cache
from django.core.mail import mail_admins
from django.core.paginator import EmptyPage, PageNotAnInteger, Paginator
from django.db.models import Count, F, Func, OuterRef, Q, Subquery
from django.db.models.functions import TruncMonth
@ -180,23 +179,6 @@ 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):
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):
return render(request, "agenda_culturel/thank_you.html")
@ -681,18 +663,6 @@ class EventModerateView(
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/")
@permission_required("agenda_culturel.change_event")
def moderate_event_next(request, pk):