parent
b33876b1db
commit
7f929bfacc
@ -0,0 +1,38 @@ |
|||||||
|
# Generated by Django 4.2.11 on 2024-12-16 08:57 |
||||||
|
|
||||||
|
from django.db import migrations, models |
||||||
|
import django.db.models.deletion |
||||||
|
import uuid |
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration): |
||||||
|
|
||||||
|
dependencies = [ |
||||||
|
('tournaments', '0100_playerregistration_coach_and_more'), |
||||||
|
] |
||||||
|
|
||||||
|
operations = [ |
||||||
|
migrations.CreateModel( |
||||||
|
name='UnregisteredTeam', |
||||||
|
fields=[ |
||||||
|
('id', models.UUIDField(default=uuid.uuid4, primary_key=True, serialize=False)), |
||||||
|
('unregistration_date', models.DateTimeField(blank=True, null=True)), |
||||||
|
('comment', models.CharField(blank=True, max_length=200, null=True)), |
||||||
|
('source', models.CharField(blank=True, max_length=20, null=True)), |
||||||
|
('source_value', models.CharField(blank=True, max_length=200, null=True)), |
||||||
|
('reason', models.IntegerField(blank=True, null=True)), |
||||||
|
('tournament', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='tournaments.tournament')), |
||||||
|
], |
||||||
|
), |
||||||
|
migrations.CreateModel( |
||||||
|
name='UnregisteredPlayer', |
||||||
|
fields=[ |
||||||
|
('id', models.UUIDField(default=uuid.uuid4, primary_key=True, serialize=False)), |
||||||
|
('first_name', models.CharField(blank=True, max_length=50)), |
||||||
|
('last_name', models.CharField(blank=True, max_length=50)), |
||||||
|
('licence_id', models.CharField(blank=True, max_length=50, null=True)), |
||||||
|
('reason', models.IntegerField(blank=True, null=True)), |
||||||
|
('unregistered_team', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='tournaments.unregisteredteam')), |
||||||
|
], |
||||||
|
), |
||||||
|
] |
||||||
@ -0,0 +1,21 @@ |
|||||||
|
# Generated by Django 4.2.11 on 2024-12-16 13:10 |
||||||
|
|
||||||
|
from django.db import migrations |
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration): |
||||||
|
|
||||||
|
dependencies = [ |
||||||
|
('tournaments', '0101_unregisteredteam_unregisteredplayer'), |
||||||
|
] |
||||||
|
|
||||||
|
operations = [ |
||||||
|
migrations.RemoveField( |
||||||
|
model_name='teamregistration', |
||||||
|
name='unregistered', |
||||||
|
), |
||||||
|
migrations.RemoveField( |
||||||
|
model_name='teamregistration', |
||||||
|
name='unregistration_date', |
||||||
|
), |
||||||
|
] |
||||||
@ -0,0 +1,25 @@ |
|||||||
|
from django.db import models |
||||||
|
from . import UnregisteredTeam |
||||||
|
import uuid |
||||||
|
|
||||||
|
class UnregisteredPlayer(models.Model): |
||||||
|
id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=True) |
||||||
|
unregistered_team = models.ForeignKey(UnregisteredTeam, on_delete=models.CASCADE) |
||||||
|
first_name = models.CharField(max_length=50, blank=True) |
||||||
|
last_name = models.CharField(max_length=50, blank=True) |
||||||
|
licence_id = models.CharField(max_length=50, null=True, blank=True) |
||||||
|
|
||||||
|
def __str__(self): |
||||||
|
return self.name() |
||||||
|
|
||||||
|
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 |
||||||
@ -0,0 +1,40 @@ |
|||||||
|
from django.db import models |
||||||
|
from django.db.models.sql.query import Q |
||||||
|
from . import Tournament |
||||||
|
import uuid |
||||||
|
from django.utils import timezone |
||||||
|
|
||||||
|
class UnregisteredTeam(models.Model): |
||||||
|
id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=True) |
||||||
|
tournament = models.ForeignKey(Tournament, on_delete=models.CASCADE) |
||||||
|
unregistration_date = models.DateTimeField(null=True, blank=True) |
||||||
|
|
||||||
|
def __str__(self): |
||||||
|
return self.player_names() |
||||||
|
|
||||||
|
def player_names_as_list(self): |
||||||
|
return [pr.name() for pr in self.unregisteredplayer_set.all()] |
||||||
|
|
||||||
|
|
||||||
|
def team_names(self): |
||||||
|
return self.player_names_as_list() |
||||||
|
|
||||||
|
def shortened_team_names(self): |
||||||
|
players = list(self.unregisteredplayer_set.all()) |
||||||
|
if len(players) == 1: |
||||||
|
return [players[0].shortened_name(), ''] |
||||||
|
else: |
||||||
|
return [pr.shortened_name() for pr in players] |
||||||
|
|
||||||
|
@property |
||||||
|
def players(self): |
||||||
|
# Fetch related PlayerRegistration objects |
||||||
|
return self.unregisteredplayer_set.all().order_by('last_name') |
||||||
|
|
||||||
|
def player_names(self): |
||||||
|
names = self.player_names_as_list() |
||||||
|
str = " - ".join(names) |
||||||
|
if len(str) > 0: |
||||||
|
return str |
||||||
|
else: |
||||||
|
return "no players" |
||||||
Loading…
Reference in new issue