fix issue with in progress and future tournaments

clubs
Laurent 1 year ago
parent 97d17dcb8b
commit 6b6871b2a1
  1. 6
      tournaments/models/tournament.py
  2. 24
      tournaments/views.py

@ -6,7 +6,7 @@ if TYPE_CHECKING:
from . import Event, TournamentPayment, FederalMatchCategory, FederalCategory, FederalLevelCategory, FederalAgeCategory from . import Event, TournamentPayment, FederalMatchCategory, FederalCategory, FederalLevelCategory, FederalAgeCategory
import uuid import uuid
from django.utils import timezone, formats from django.utils import timezone, formats
from datetime import datetime from datetime import datetime, timedelta
class TeamSortingType(models.IntegerChoices): class TeamSortingType(models.IntegerChoices):
@ -501,6 +501,10 @@ class Tournament(models.Model):
def getEightAm(self, date): def getEightAm(self, date):
return date.replace(hour=8, minute=0, second=0, microsecond=0) return date.replace(hour=8, minute=0, second=0, microsecond=0)
def supposedly_in_progress(self):
end = self.start_date + timedelta(days=self.day_duration)
return timezone.now() > self.start_date.replace(hour=0, minute=0) and timezone.now() < end
class MatchGroup: class MatchGroup:
def __init__(self, name, matches): def __init__(self, name, matches):
self.name = name self.name = name

@ -12,8 +12,7 @@ from tournaments.models import group_stage
from .serializers import ClubSerializer, CourtSerializer, DateIntervalSerializer, TournamentSerializer, UserSerializer, ChangePasswordSerializer, EventSerializer, RoundSerializer, GroupStageSerializer, MatchSerializer, TeamScoreSerializer, TeamRegistrationSerializer, PlayerRegistrationSerializer, LiveMatchSerializer, PurchaseSerializer, UserUpdateSerializer from .serializers import ClubSerializer, CourtSerializer, DateIntervalSerializer, TournamentSerializer, UserSerializer, ChangePasswordSerializer, EventSerializer, RoundSerializer, GroupStageSerializer, MatchSerializer, TeamScoreSerializer, TeamRegistrationSerializer, PlayerRegistrationSerializer, LiveMatchSerializer, PurchaseSerializer, UserUpdateSerializer
from .models import Club, Tournament, CustomUser, Event, Round, GroupStage, Match, TeamScore, TeamRegistration, PlayerRegistration, Purchase from .models import Club, Tournament, CustomUser, Event, Round, GroupStage, Match, TeamScore, TeamRegistration, PlayerRegistration, Purchase
from .models import TeamSummon from .models import TeamSummon
from datetime import datetime from datetime import datetime, timedelta
import datetime
from rest_framework import viewsets, permissions from rest_framework import viewsets, permissions
from rest_framework.authtoken.models import Token from rest_framework.authtoken.models import Token
@ -35,12 +34,13 @@ from qr_code.qrcode.utils import QRCodeOptions
def index(request): def index(request):
today = date.today() today = date.today()
tomorrow = today + timedelta(days=1)
club_id = request.GET.get('club') club_id = request.GET.get('club')
q_is_private = Q(is_private=False) q_is_private = Q(is_private=False)
q_future = [q_is_private, Q(end_date__isnull=True, start_date__gt=today)] q_after_tomorrow = [q_is_private, Q(end_date__isnull=True, start_date__gt=tomorrow)]
q_live = [q_is_private, Q(end_date__isnull=True, start_date__lte=today)] q_after_today = [q_is_private, Q(end_date__isnull=True, start_date__gt=today)]
q_ended = [q_is_private, Q(end_date__isnull=False)] q_ended = [q_is_private, Q(end_date__isnull=False)]
club = None club = None
@ -48,18 +48,24 @@ def index(request):
club = get_object_or_404(Club, pk=club_id) club = get_object_or_404(Club, pk=club_id)
q_club = Q(event__club=club) q_club = Q(event__club=club)
q_future.append(q_club) q_after_tomorrow.append(q_club)
q_live.append(q_club) q_after_today.append(q_club)
q_ended.append(q_club) q_ended.append(q_club)
future_tournaments = Tournament.objects.filter(*q_future).order_by('start_date') after_tomorrow_tournaments = Tournament.objects.filter(*q_after_tomorrow).order_by('start_date')
live_tournaments = Tournament.objects.filter(*q_live).order_by('start_date') after_today_tournaments = Tournament.objects.filter(*q_after_today).order_by('start_date')
live_tournaments = []
for tournament in after_today_tournaments:
if tournament.supposedly_in_progress():
live_tournaments.append(tournament)
ended_tournaments = Tournament.objects.filter(*q_ended).order_by('start_date') ended_tournaments = Tournament.objects.filter(*q_ended).order_by('start_date')
return render( return render(
request, request,
"tournaments/tournaments.html", "tournaments/tournaments.html",
{ {
'future': future_tournaments, 'future': after_tomorrow_tournaments,
'live': live_tournaments, 'live': live_tournaments,
'ended': ended_tournaments, 'ended': ended_tournaments,
'club': club, 'club': club,

Loading…
Cancel
Save