|
|
|
|
@ -1,5 +1,6 @@ |
|
|
|
|
from django.db import models |
|
|
|
|
from django.utils import timezone |
|
|
|
|
import locale |
|
|
|
|
|
|
|
|
|
class Club(models.Model): |
|
|
|
|
name = models.CharField(max_length=200) |
|
|
|
|
@ -33,6 +34,34 @@ class Tournament(models.Model): |
|
|
|
|
def teamsByFinalRank(self): |
|
|
|
|
return self.team_set.order_by('position_finale').filter(position_finale__gt=0) |
|
|
|
|
|
|
|
|
|
class Team(models.Model): |
|
|
|
|
name = models.CharField(max_length=200, blank=True) |
|
|
|
|
rank = models.IntegerField(default=0) |
|
|
|
|
position = models.IntegerField(default=0) |
|
|
|
|
position_finale = models.IntegerField(default=0) |
|
|
|
|
bracket = models.BooleanField(default=False) |
|
|
|
|
position_label = models.CharField(max_length=200, blank=True) |
|
|
|
|
date_label = models.CharField(max_length=200, blank=True) |
|
|
|
|
background_color = models.CharField(max_length=200, blank=True) |
|
|
|
|
position_finale = models.IntegerField(default=0) |
|
|
|
|
couleur_finale = models.CharField(max_length=200, blank=True) |
|
|
|
|
points_label = models.CharField(max_length=200, blank=True) |
|
|
|
|
|
|
|
|
|
tournament = models.ForeignKey(Tournament, on_delete=models.CASCADE, default=None, blank=True, null=True) |
|
|
|
|
def players(self): |
|
|
|
|
return self.player_set.order_by('rank') |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class Player(models.Model): |
|
|
|
|
name = models.CharField(max_length=200, blank=True) |
|
|
|
|
rank = models.IntegerField(default=0) |
|
|
|
|
club_name = models.CharField(max_length=200, blank=True) |
|
|
|
|
ligue_name = models.CharField(max_length=200, blank=True) |
|
|
|
|
team = models.ForeignKey(Team, on_delete=models.CASCADE, default=None, blank=True, null=True) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class Match(models.Model): |
|
|
|
|
tournament = models.ForeignKey(Tournament, on_delete=models.CASCADE, default=None) |
|
|
|
|
date = models.DateTimeField('start date') |
|
|
|
|
@ -60,6 +89,8 @@ class Match(models.Model): |
|
|
|
|
team2scorecolumn4 = models.CharField(max_length=200, blank=True) |
|
|
|
|
team2scorecolumn5 = models.CharField(max_length=200, blank=True) |
|
|
|
|
|
|
|
|
|
teams = models.ManyToManyField(Team) |
|
|
|
|
|
|
|
|
|
def poule(self): |
|
|
|
|
return self.court / 100 |
|
|
|
|
|
|
|
|
|
@ -81,6 +112,12 @@ class Match(models.Model): |
|
|
|
|
else : |
|
|
|
|
return False |
|
|
|
|
|
|
|
|
|
def hasEnded(self): |
|
|
|
|
if self.enddate: |
|
|
|
|
return True |
|
|
|
|
else: |
|
|
|
|
return False |
|
|
|
|
|
|
|
|
|
def durationPrefix(self): |
|
|
|
|
|
|
|
|
|
_seconds = 0 |
|
|
|
|
@ -92,10 +129,14 @@ class Match(models.Model): |
|
|
|
|
if _seconds > 0: |
|
|
|
|
return "Temps de jeu" |
|
|
|
|
else : |
|
|
|
|
return "Démarrage prévu dans" |
|
|
|
|
_hours = int(_seconds / 3600) |
|
|
|
|
if _hours < -2 and self.hasEnded(): |
|
|
|
|
return "Démarrage prévu" |
|
|
|
|
else : |
|
|
|
|
return "Démarrage prévu dans" |
|
|
|
|
|
|
|
|
|
def duration(self): |
|
|
|
|
|
|
|
|
|
locale.setlocale(locale.LC_ALL, '') |
|
|
|
|
_seconds = 0 |
|
|
|
|
if self.enddate: |
|
|
|
|
_seconds = (self.enddate - self.date).total_seconds() |
|
|
|
|
@ -103,31 +144,21 @@ class Match(models.Model): |
|
|
|
|
_seconds = (timezone.now() - self.date).total_seconds() |
|
|
|
|
|
|
|
|
|
if _seconds > 0: |
|
|
|
|
_hours = int(_seconds / 3600) |
|
|
|
|
_minutes = int((_seconds % 3600) / 60) |
|
|
|
|
return f"{_hours:02d}h{_minutes:02d}min" |
|
|
|
|
_hours = int(_seconds / 3600) |
|
|
|
|
_minutes = int((_seconds % 3600) / 60) |
|
|
|
|
return f"{_hours:02d}h{_minutes:02d}min" |
|
|
|
|
else : |
|
|
|
|
_seconds = _seconds * -1 |
|
|
|
|
_hours = int(_seconds / 3600) |
|
|
|
|
_minutes = int((_seconds % 3600) / 60) |
|
|
|
|
return f"{_hours:02d}h{_minutes:02d}min" |
|
|
|
|
if _hours < -2 and self.hasEnded() == False: |
|
|
|
|
return self.date.strftime("%A %d %B à %H:%M") |
|
|
|
|
else : |
|
|
|
|
_seconds = _seconds * -1 |
|
|
|
|
_hours = _hours * -1 |
|
|
|
|
_minutes = int((_seconds % 3600) / 60) |
|
|
|
|
return f"{_hours:02d}h{_minutes:02d}min" |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def seconds(self): |
|
|
|
|
return (timezone.now() - self.date).total_seconds() |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class Team(models.Model): |
|
|
|
|
name = models.CharField(max_length=200, blank=True) |
|
|
|
|
rank = models.IntegerField(default=0) |
|
|
|
|
position = models.IntegerField(default=0) |
|
|
|
|
position_finale = models.IntegerField(default=0) |
|
|
|
|
bracket = models.BooleanField(default=False) |
|
|
|
|
position_label = models.CharField(max_length=200, blank=True) |
|
|
|
|
date_label = models.CharField(max_length=200, blank=True) |
|
|
|
|
background_color = models.CharField(max_length=200, blank=True) |
|
|
|
|
position_finale = models.IntegerField(default=0) |
|
|
|
|
couleur_finale = models.CharField(max_length=200, blank=True) |
|
|
|
|
points_label = models.CharField(max_length=200, blank=True) |
|
|
|
|
|
|
|
|
|
tournament = models.ForeignKey(Tournament, on_delete=models.CASCADE, default=None, blank=True, null=True) |
|
|
|
|
|
|
|
|
|
|