From b71ac1c6455ee878dbd03393b008bb76ab8d83ae Mon Sep 17 00:00:00 2001 From: Razmig Sarkissian Date: Wed, 17 Sep 2025 09:24:06 +0200 Subject: [PATCH] Remove Registration Cart Cleanup Middleware --- padelclub_backend/settings.py | 4 +-- tournaments/middleware.py | 35 ------------------- .../services/tournament_registration.py | 27 ++++++++++++++ 3 files changed, 28 insertions(+), 38 deletions(-) diff --git a/padelclub_backend/settings.py b/padelclub_backend/settings.py index 28ad40d..2c5a1c0 100644 --- a/padelclub_backend/settings.py +++ b/padelclub_backend/settings.py @@ -63,9 +63,7 @@ MIDDLEWARE = [ 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware', - 'tournaments.middleware.ReferrerMiddleware', # Add this line - 'tournaments.middleware.RegistrationCartCleanupMiddleware', - + 'tournaments.middleware.ReferrerMiddleware', ] ROOT_URLCONF = 'padelclub_backend.urls' diff --git a/tournaments/middleware.py b/tournaments/middleware.py index ad4b5d2..8777151 100644 --- a/tournaments/middleware.py +++ b/tournaments/middleware.py @@ -1,6 +1,4 @@ from django.urls import reverse -from django.utils import timezone -import datetime class ReferrerMiddleware: def __init__(self, get_response): @@ -18,36 +16,3 @@ class ReferrerMiddleware: response = self.get_response(request) return response - -class RegistrationCartCleanupMiddleware: - def __init__(self, get_response): - self.get_response = get_response - - def __call__(self, request): - self._check_and_clean_expired_cart(request) - response = self.get_response(request) - return response - - def _check_and_clean_expired_cart(self, request): - if 'registration_cart_expiry' in request.session: - try: - expiry_str = request.session['registration_cart_expiry'] - expiry = datetime.datetime.fromisoformat(expiry_str) - if timezone.now() > expiry: - # Clear expired cart - keys_to_delete = [ - 'registration_cart_id', - 'registration_tournament_id', - 'registration_cart_players', - 'registration_cart_expiry', - 'registration_mobile_number' - ] - for key in keys_to_delete: - if key in request.session: - del request.session[key] - request.session.modified = True - except (ValueError, TypeError): - # Invalid expiry format, clear it - if 'registration_cart_expiry' in request.session: - del request.session['registration_cart_expiry'] - request.session.modified = True diff --git a/tournaments/services/tournament_registration.py b/tournaments/services/tournament_registration.py index a1aea6f..a8cba10 100644 --- a/tournaments/services/tournament_registration.py +++ b/tournaments/services/tournament_registration.py @@ -25,6 +25,31 @@ class RegistrationCartManager: self.session = request.session self.first_tournament = False + def _clean_expired_cart(self): + """Clean up expired cart data from session""" + if 'registration_cart_expiry' in self.session: + try: + expiry_str = self.session['registration_cart_expiry'] + expiry = datetime.datetime.fromisoformat(expiry_str) + if timezone.now() > expiry: + # Clear expired cart + keys_to_delete = [ + 'registration_cart_id', + 'registration_tournament_id', + 'registration_cart_players', + 'registration_cart_expiry', + 'registration_mobile_number' + ] + for key in keys_to_delete: + if key in self.session: + del self.session[key] + self.session.modified = True + except (ValueError, TypeError): + # Invalid expiry format, clear it + if 'registration_cart_expiry' in self.session: + del self.session['registration_cart_expiry'] + self.session.modified = True + def get_or_create_cart_id(self): """Get or create a registration cart ID in the session""" if 'registration_cart_id' not in self.session: @@ -50,9 +75,11 @@ class RegistrationCartManager: try: expiry = parse_datetime(expiry_str) if expiry is None: + self._clean_expired_cart() return True return timezone.now() > expiry except (ValueError, TypeError): + self._clean_expired_cart() return True def reset_cart_expiry(self):