36 lines
981 B
Python
36 lines
981 B
Python
# Generated by Django 5.1.7 on 2025-03-25 20:33
|
|
|
|
import datetime
|
|
|
|
from django.db import migrations, models
|
|
from django.db.models import F, Sum
|
|
|
|
|
|
def calculate_game_playtime(apps, schema_editor):
|
|
Game = apps.get_model("games", "Game")
|
|
games = Game.objects.all()
|
|
for game in games:
|
|
total_playtime = game.sessions.aggregate(
|
|
total_playtime=Sum(F("duration_total"))
|
|
)["total_playtime"]
|
|
if total_playtime:
|
|
game.playtime = total_playtime
|
|
game.save(update_fields=["playtime"])
|
|
|
|
|
|
class Migration(migrations.Migration):
|
|
dependencies = [
|
|
("games", "0012_alter_session_duration_calculated"),
|
|
]
|
|
|
|
operations = [
|
|
migrations.AddField(
|
|
model_name="game",
|
|
name="playtime",
|
|
field=models.DurationField(
|
|
blank=True, default=datetime.timedelta(0), editable=False
|
|
),
|
|
),
|
|
migrations.RunPython(calculate_game_playtime),
|
|
]
|