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
import uuid
from django.utils import timezone, formats
from datetime import datetime
from datetime import datetime, timedelta
class TeamSortingType(models.IntegerChoices):
@ -501,6 +501,10 @@ class Tournament(models.Model):
def getEightAm(self, date):
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:
def __init__(self, name, matches):
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 .models import Club, Tournament, CustomUser, Event, Round, GroupStage, Match, TeamScore, TeamRegistration, PlayerRegistration, Purchase
from .models import TeamSummon
from datetime import datetime
import datetime
from datetime import datetime, timedelta
from rest_framework import viewsets, permissions
from rest_framework.authtoken.models import Token
@ -35,12 +34,13 @@ from qr_code.qrcode.utils import QRCodeOptions
def index(request):
today = date.today()
tomorrow = today + timedelta(days=1)
club_id = request.GET.get('club')
q_is_private = Q(is_private=False)
q_future = [q_is_private, Q(end_date__isnull=True, start_date__gt=today)]
q_live = [q_is_private, Q(end_date__isnull=True, start_date__lte=today)]
q_after_tomorrow = [q_is_private, Q(end_date__isnull=True, start_date__gt=tomorrow)]
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)]
club = None
@ -48,18 +48,24 @@ def index(request):
club = get_object_or_404(Club, pk=club_id)
q_club = Q(event__club=club)
q_future.append(q_club)
q_live.append(q_club)
q_after_tomorrow.append(q_club)
q_after_today.append(q_club)
q_ended.append(q_club)
future_tournaments = Tournament.objects.filter(*q_future).order_by('start_date')
live_tournaments = Tournament.objects.filter(*q_live).order_by('start_date')
after_tomorrow_tournaments = Tournament.objects.filter(*q_after_tomorrow).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')
return render(
request,
"tournaments/tournaments.html",
{
'future': future_tournaments,
'future': after_tomorrow_tournaments,
'live': live_tournaments,
'ended': ended_tournaments,
'club': club,

Loading…
Cancel
Save