diff --git a/tournaments/models/group_stage.py b/tournaments/models/group_stage.py index 092cb3e..94d83eb 100644 --- a/tournaments/models/group_stage.py +++ b/tournaments/models/group_stage.py @@ -137,7 +137,7 @@ class LiveGroupStage: class GroupStageTeam: def __init__(self, team_registration): - self.names = team_registration.team_names() + self.names = team_registration.shortened_team_names() if team_registration.group_stage_position: self.position = team_registration.group_stage_position else: diff --git a/tournaments/models/match.py b/tournaments/models/match.py index f3c0274..06be6bb 100644 --- a/tournaments/models/match.py +++ b/tournaments/models/match.py @@ -121,14 +121,14 @@ class Match(models.Model): return games def current_duration(self): - if self.start_date: + if self.confirmed and self.start_date: if self.end_date: return (self.end_date - self.start_date).total_seconds() else: current = (timezone.now() - self.start_date).total_seconds() if self.total_number_of_games() > 0 and current < self.average_seconds_duration() * 4: return current - elif self.total_number_of_games() == 0 and current < 4 * 60 * 60: + elif self.total_number_of_games() == 0 and current < 3 * 60 * 60: return current else: return None @@ -141,15 +141,15 @@ class Match(models.Model): # return None # return (timezone.now() - self.start_date).total_seconds() else: - return 0 + return None def started(self): - if self.end_date: - return True - elif self.start_date: - return timezone.now() > self.start_date - else: - return False + if self.confirmed: + if self.end_date: + return True + elif self.start_date: + return timezone.now() > self.start_date + return False def should_appear(self): if self.disabled is True: @@ -198,7 +198,7 @@ class Match(models.Model): image = None weight= None is_winner = False - names = team_score.team_names() + names = team_score.shortened_team_names() scores = team_score.scores_array() walk_out = team_score.walk_out team = Team(image, names, scores, weight, is_winner, walk_out) @@ -281,3 +281,10 @@ class LiveMatch: if team.walk_out and len(team.scores) == 0: return False return True + + def should_show_scores(self): + if self.started: + for team in self.teams: + if len(team.scores) > 0: + return True + return False diff --git a/tournaments/models/player_registration.py b/tournaments/models/player_registration.py index 1a03d65..560bc54 100644 --- a/tournaments/models/player_registration.py +++ b/tournaments/models/player_registration.py @@ -39,3 +39,12 @@ class PlayerRegistration(models.Model): def name(self): return f"{self.first_name} {self.last_name}" + + def shortened_name(self): + name = self.name() + if len(name) > 20 and self.first_name: + name = f"{self.first_name[0]}. {self.last_name}" + if len(name) > 20: + name_parts = self.last_name.split(" ") + name = f"{self.first_name[0]}. {name_parts[0]}" + return name diff --git a/tournaments/models/team_registration.py b/tournaments/models/team_registration.py index 9c3efc1..7736713 100644 --- a/tournaments/models/team_registration.py +++ b/tournaments/models/team_registration.py @@ -43,6 +43,12 @@ class TeamRegistration(models.Model): else: return [pr.name() for pr in self.playerregistration_set.all()] + def shortened_team_names(self): + if self.name: + return [self.name] + else: + return [pr.shortened_name() for pr in self.playerregistration_set.all()] + def player_names(self): names = [pr.name() for pr in self.playerregistration_set.all()] str = " - ".join(names) diff --git a/tournaments/models/team_score.py b/tournaments/models/team_score.py index 7bea595..41852f0 100644 --- a/tournaments/models/team_score.py +++ b/tournaments/models/team_score.py @@ -23,6 +23,12 @@ class TeamScore(models.Model): else: return "--" + def shortened_team_names(self): + names = [] + if self.team_registration: + names = self.team_registration.shortened_team_names() + return names + def team_names(self): names = [] if self.team_registration: diff --git a/tournaments/models/tournament.py b/tournaments/models/tournament.py index 520c49c..49b8665 100644 --- a/tournaments/models/tournament.py +++ b/tournaments/models/tournament.py @@ -124,6 +124,15 @@ class Tournament(models.Model): def in_progress(self): return self.end_date is None + def creator(self): + return self.event.creator.username + + def private_label(self): + if self.is_private: + return "Privé" + else: + return "Public" + def summon_count_display(self): teams = self.team_summons() if teams is not None and len(teams) > 0: diff --git a/tournaments/static/tournaments/css/style.css b/tournaments/static/tournaments/css/style.css index 9aed836..7e49b61 100644 --- a/tournaments/static/tournaments/css/style.css +++ b/tournaments/static/tournaments/css/style.css @@ -108,6 +108,10 @@ tr { /* height: 40px; */ } +.numbers { + font-feature-settings: "tnum"; +} + .orange { color: #f39200; } @@ -250,7 +254,7 @@ tr { .score { display: inline-block; - font-size: 1.4em; + font-size: 1.3em; vertical-align: middle; text-align: center; padding: 0px 5px; @@ -494,9 +498,9 @@ h-margin { padding: 5px 0px; } -.table-row-4-colums-club-tournament { +.table-row-6-colums-club-tournament { display: grid; - grid-template-columns: 100px 100px 1fr auto; + grid-template-columns: 100px 80px 100px 80px 1fr auto; align-items: center; /* Vertically center the content within each column */ padding: 5px 0px; diff --git a/tournaments/templates/tournaments/broadcast/broadcast.html b/tournaments/templates/tournaments/broadcast/broadcast.html index 87b8b48..0828677 100644 --- a/tournaments/templates/tournaments/broadcast/broadcast.html +++ b/tournaments/templates/tournaments/broadcast/broadcast.html @@ -11,7 +11,7 @@
- PadelClub est une application de gestion de tournois destinée aux juges-arbitres, clubs et passionnés qui souhaitent organiser aisément des tournois homologués ou amicaux. Gérez vos tournois de A à Z : des inscriptions jusqu’aux résultats finaux et retrouvez tous les résultats des matchs en temps réel. + Padel Club est une application de gestion de tournois destinée aux juges-arbitres, clubs et passionnés qui souhaitent organiser aisément des tournois homologués ou amicaux. Gérez vos tournois de A à Z : des inscriptions jusqu’aux résultats finaux et retrouvez tous les résultats des matchs en ligne.