feat(players): add origin competition/team model and filtering
This commit is contained in:
35
apps/players/migrations/0004_backfill_player_origins.py
Normal file
35
apps/players/migrations/0004_backfill_player_origins.py
Normal file
@ -0,0 +1,35 @@
|
||||
from django.db import migrations
|
||||
from django.db.models import F, Q
|
||||
|
||||
|
||||
def backfill_player_origins(apps, schema_editor):
|
||||
Player = apps.get_model("players", "Player")
|
||||
PlayerCareerEntry = apps.get_model("players", "PlayerCareerEntry")
|
||||
|
||||
for player in Player.objects.all().iterator():
|
||||
entry = (
|
||||
PlayerCareerEntry.objects.filter(player=player)
|
||||
.filter(Q(competition__isnull=False) | Q(team__isnull=False))
|
||||
.order_by(
|
||||
F("start_date").asc(nulls_last=True),
|
||||
F("season__start_date").asc(nulls_last=True),
|
||||
"id",
|
||||
)
|
||||
.first()
|
||||
)
|
||||
if entry is None:
|
||||
continue
|
||||
|
||||
player.origin_competition_id = entry.competition_id
|
||||
player.origin_team_id = entry.team_id
|
||||
player.save(update_fields=["origin_competition", "origin_team"])
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
dependencies = [
|
||||
("players", "0003_player_origin_competition_player_origin_team_and_more"),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.RunPython(backfill_player_origins, migrations.RunPython.noop),
|
||||
]
|
||||
Reference in New Issue
Block a user