Files
vrobbler/vrobbler/apps/scrobbles/migrations/0052_scrobble_timezone.py

47 lines
1.3 KiB
Python

# Generated by Django 4.2.11 on 2024-04-19 13:10
from datetime import datetime
import pytz
from django.conf import settings
from django.db import migrations, models
def set_default_timezone(apps, schema_editor):
Scrobble = apps.get_model("scrobbles", "Scrobble")
for s in Scrobble.objects.all():
if not s.timezone:
s.timezone = settings.TIME_ZONE
if s.user and s.user.profile:
s.timezone = s.user.profile.timezone
# A shim to adjust for our change to European time for 3 months
if (
datetime(2023, 10, 15).replace(
tzinfo=pytz.timezone("Europe/Paris")
)
<= s.timestamp
<= datetime(2023, 12, 15).replace(
tzinfo=pytz.timezone("Europe/Paris")
)
):
s.timezone = "Europe/Paris"
s.save(update_fields=["timezone"], push_media=False)
class Migration(migrations.Migration):
dependencies = [
("scrobbles", "0051_alter_scrobble_scrobble_log"),
]
operations = [
migrations.AddField(
model_name="scrobble",
name="timezone",
field=models.CharField(blank=True, max_length=50, null=True),
),
migrations.RunPython(set_default_timezone),
]