diff --git a/src/agenda_culturel/urls.py b/src/agenda_culturel/urls.py index e5d7fb7..4888b0a 100644 --- a/src/agenda_culturel/urls.py +++ b/src/agenda_culturel/urls.py @@ -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:/", 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//past", OrganisationDetailViewPast.as_view(), diff --git a/src/agenda_culturel/views/__init__.py b/src/agenda_culturel/views/__init__.py index 00e8edd..a11e52c 100644 --- a/src/agenda_culturel/views/__init__.py +++ b/src/agenda_culturel/views/__init__.py @@ -1 +1,2 @@ from .oldviews import * +from .errors import * diff --git a/src/agenda_culturel/views/errors.py b/src/agenda_culturel/views/errors.py new file mode 100644 index 0000000..d24216e --- /dev/null +++ b/src/agenda_culturel/views/errors.py @@ -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}, + ) diff --git a/src/agenda_culturel/views/oldviews.py b/src/agenda_culturel/views/oldviews.py index 72d5f15..81d1f88 100644 --- a/src/agenda_culturel/views/oldviews.py +++ b/src/agenda_culturel/views/oldviews.py @@ -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):