From 8631848acc40ff019832117a87894d5257d8089e Mon Sep 17 00:00:00 2001 From: Laurent Date: Thu, 16 May 2024 15:58:11 +0200 Subject: [PATCH] Adds publication boolean tests --- tournaments/models/tournament.py | 50 +++++++++++++++++++ .../tournaments/navigation_tournament.html | 18 ++++--- 2 files changed, 61 insertions(+), 7 deletions(-) diff --git a/tournaments/models/tournament.py b/tournaments/models/tournament.py index d90484f..ee0876d 100644 --- a/tournaments/models/tournament.py +++ b/tournaments/models/tournament.py @@ -260,6 +260,56 @@ class Tournament(models.Model): matches.sort(key=lambda m: m.start_date, reverse=True) return matches + def display_summons(self): + if self.end_date is not None: + return False + if self.publish_summons: + return True + if timezone.now().date() >= self.start_date.date(): + return True + return False + + def display_group_stages(self): + if len(self.groupstage_set.all()) == 0: + return False + if self.publish_group_stages: + return True + + first_group_stage_start_date = self.group_stage_start_date() + if first_group_stage_start_date is None: + return False + elif timezone.now().date() >= first_group_stage_start_date.date(): + return True + return False + + def group_stage_start_date(self): + group_stages = [gs for gs in self.groupstage_set.all() if gs.start_date is not None] + return min(group_stages, key=lambda gs: gs.start_date).start_date + + def display_matches(self): + bracket_matches = self.bracket_matches() + if len(bracket_matches) == 0: + return False + if self.publish_brackets: + return True + + first_match_start_date = self.first_match_start_date(bracket_matches) + if first_match_start_date is None: + return False + elif timezone.now().date() >= first_match_start_date.date(): + return True + return False + + def bracket_matches(self): + matches = [] + for round in self.round_set.all(): + matches.extend(round.all_matches(False)) + return matches + + def first_match_start_date(self, bracket_matches): + matches = [m for m in bracket_matches if m.start_date is not None] + return min(matches, key=lambda m: m.start_date).start_date + class MatchGroup: def __init__(self, name, matches): self.name = name diff --git a/tournaments/templates/tournaments/navigation_tournament.html b/tournaments/templates/tournaments/navigation_tournament.html index b6ef57f..f18083e 100644 --- a/tournaments/templates/tournaments/navigation_tournament.html +++ b/tournaments/templates/tournaments/navigation_tournament.html @@ -1,10 +1,14 @@ +