diff --git a/tournaments/models/tournament.py b/tournaments/models/tournament.py index 823b2a7..812efae 100644 --- a/tournaments/models/tournament.py +++ b/tournaments/models/tournament.py @@ -807,9 +807,9 @@ class Tournament(models.Model): if self.end_date is not None: return is_build_and_not_empty - if datetime.now().date() >= self.start_date.date(): + if timezone.now().date() >= timezone.localtime(self.start_date): return is_build_and_not_empty - minimum_publish_date = self.creation_date.replace(hour=9, minute=0) + timedelta(days=1) + minimum_publish_date = timezone.localtime(self.creation_date).replace(hour=9, minute=0) + timedelta(days=1) return timezone.now() >= minimum_publish_date def display_teams(self): @@ -1017,7 +1017,7 @@ class Tournament(models.Model): def get_online_registration_status(self): if self.supposedly_in_progress(): - return OnlineRegistrationStatus.IN_PROGRESS + return OnlineRegistrationStatus.ENDED if self.closed_registration_date is not None: return OnlineRegistrationStatus.ENDED if self.end_date is not None: diff --git a/tournaments/views.py b/tournaments/views.py index 1f00e1f..3cd0c66 100644 --- a/tournaments/views.py +++ b/tournaments/views.py @@ -690,32 +690,34 @@ class CustomPasswordResetConfirmView(PasswordResetConfirmView): @login_required def my_tournaments(request): - user = request.user # Get the currently authenticated user - - # Assuming the authenticated user has a `licence_id` attribute + user = request.user user_licence_id = request.user.licence_id - # Check if licence_id is None + # If no licence_id, return empty lists if user_licence_id is None: - tournaments = Tournament.objects.none() # Return an empty queryset - else: - validator = LicenseValidator(user_licence_id) - stripped_license = validator.stripped_license - # Filter tournaments where the authenticated user's licence_id starts with the given value - tournaments = Tournament.objects.filter( - teamregistration__playerregistration__licence_id__startswith=stripped_license - ).distinct().order_by('-start_date') + return render(request, 'registration/my_tournaments.html', { + 'upcoming_tournaments': [], + 'running_tournaments': [], + 'ended_tournaments': [], + 'user_name': user.username + }) + + # Get all tournaments for the user based on their licence + validator = LicenseValidator(user_licence_id) + stripped_license = validator.stripped_license - # Current time - current_time = timezone.now() + def filter_user_tournaments(tournaments): + return [t for t in tournaments if t.teamregistration_set.filter( + playerregistration__licence_id__startswith=stripped_license, + walk_out=False + ).exists()] - # Separate tournaments into categories - upcoming_tournaments = tournaments.filter(start_date__gt=current_time) - running_tournaments = tournaments.filter(start_date__lte=current_time, end_date=None) - ended_tournaments = tournaments.filter(end_date__isnull=False) + # Get filtered tournaments using the helper function + upcoming_tournaments = filter_user_tournaments(future_tournaments(None)) + running_tournaments = filter_user_tournaments(live_tournaments(None)) + ended_tournaments = filter_user_tournaments(finished_tournaments(None)) return render(request, 'registration/my_tournaments.html', { - 'tournaments': tournaments, 'upcoming_tournaments': upcoming_tournaments, 'running_tournaments': running_tournaments, 'ended_tournaments': ended_tournaments,