diff --git a/tournaments/migrations/0062_tournament_publish_tournament_and_more.py b/tournaments/migrations/0062_tournament_publish_tournament_and_more.py new file mode 100644 index 0000000..50d04f5 --- /dev/null +++ b/tournaments/migrations/0062_tournament_publish_tournament_and_more.py @@ -0,0 +1,33 @@ +# Generated by Django 4.2.11 on 2024-05-30 16:07 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('tournaments', '0061_remove_teamscore_player_registrations'), + ] + + operations = [ + migrations.AddField( + model_name='tournament', + name='publish_tournament', + field=models.BooleanField(default=False), + ), + migrations.AlterField( + model_name='playerregistration', + name='birthdate', + field=models.CharField(blank=True, max_length=50, null=True), + ), + migrations.AlterField( + model_name='playerregistration', + name='club_name', + field=models.CharField(blank=True, max_length=200, null=True), + ), + migrations.AlterField( + model_name='playerregistration', + name='ligue_name', + field=models.CharField(blank=True, max_length=200, null=True), + ), + ] diff --git a/tournaments/models/player_registration.py b/tournaments/models/player_registration.py index 8022ed7..f303cbb 100644 --- a/tournaments/models/player_registration.py +++ b/tournaments/models/player_registration.py @@ -19,15 +19,15 @@ class PlayerRegistration(models.Model): #donnee publique tournament_played = models.IntegerField(null=True, blank=True) points = models.FloatField(null=True, blank=True) - club_name = models.CharField(max_length=50, null=True, blank=True) - ligue_name = models.CharField(max_length=50, null=True, blank=True) + club_name = models.CharField(max_length=200, null=True, blank=True) + ligue_name = models.CharField(max_length=200, null=True, blank=True) assimilation = models.CharField(max_length=50, null=True, blank=True) #beachpadel phone_number = models.CharField(max_length=15, null=True, blank=True) email = models.CharField(max_length=50, null=True, blank=True) - birthdate = models.CharField(max_length=20, null=True, blank=True) + birthdate = models.CharField(max_length=50, null=True, blank=True) computed_rank = models.IntegerField(default=0) diff --git a/tournaments/models/tournament.py b/tournaments/models/tournament.py index 48ab5f9..c106bb2 100644 --- a/tournaments/models/tournament.py +++ b/tournaments/models/tournament.py @@ -55,6 +55,7 @@ class Tournament(models.Model): publish_brackets = models.BooleanField(default=False) should_verify_bracket = models.BooleanField(default=False) should_verify_group_stage = models.BooleanField(default=False) + publish_tournament = models.BooleanField(default=False) def __str__(self): if self.name: @@ -450,6 +451,18 @@ class Tournament(models.Model): return True return False + def display_tournament(self): + if self.end_date is not None: + return True + if self.publish_tournament: + return True + if datetime.now().date() >= self.start_date.date(): + return True + if (len(self.groupstage_set.all()) > 0 or len(self.round_set.all()) > 0) and len(self.teamregistration_set.all()) >= 4: + minimum_publish_date = self.creation_date + timedelta(days=1) + return timezone.now() >= minimum_publish_date + return False + def display_teams(self): if self.end_date is not None: return True diff --git a/tournaments/views.py b/tournaments/views.py index 5027d26..978d6fb 100644 --- a/tournaments/views.py +++ b/tournaments/views.py @@ -52,21 +52,33 @@ def index(request): q_ended.append(q_club) after_tomorrow_tournaments = Tournament.objects.filter(*q_after_tomorrow).order_by('start_date') + filtered_after_tomorrow_tournaments = [] + for tournament in after_tomorrow_tournaments: + if tournament.display_tournament(): + filtered_after_tomorrow_tournaments.append(tournament) + + unfinished_tournaments = Tournament.objects.filter(*q_unfinished).order_by('start_date') live_tournaments = [] for tournament in unfinished_tournaments: - if tournament.supposedly_in_progress(): + if tournament.supposedly_in_progress() and tournament.display_tournament(): live_tournaments.append(tournament) ended_tournaments = Tournament.objects.filter(*q_ended).order_by('start_date') + + filtered_ended_tournaments = [] + for tournament in ended_tournaments: + if tournament.display_tournament(): + filtered_ended_tournaments.append(tournament) + return render( request, "tournaments/tournaments.html", { - 'future': after_tomorrow_tournaments, + 'future': filtered_after_tomorrow_tournaments, 'live': live_tournaments, - 'ended': ended_tournaments, + 'ended': filtered_ended_tournaments, 'club': club, } )