47 lines
2 KiB
Python
47 lines
2 KiB
Python
# Generated by Django 2.0 on 2018-04-01 15:11
|
|
|
|
from django.db import migrations
|
|
from django.utils import timezone
|
|
|
|
import pytz
|
|
|
|
def localize_event_datetimes(apps, schema_editor):
|
|
Event = MyModel = apps.get_model('events', 'Event')
|
|
for event in Event.objects.all():
|
|
utc_tz = pytz.timezone('UTC')
|
|
event_tz = get_event_timezone(event)
|
|
print("Converting event %s to %s" % (event.id, event_tz))
|
|
event.start_time = utc_tz.localize(timezone.make_naive(event_tz.localize(timezone.make_naive(event.start_time, pytz.utc))))
|
|
event.end_time = utc_tz.localize(timezone.make_naive(event_tz.localize(timezone.make_naive(event.end_time, pytz.utc))))
|
|
event.save()
|
|
|
|
def localize_commonevent_datetimes(apps, schema_editor):
|
|
CommonEvent = MyModel = apps.get_model('events', 'CommonEvent')
|
|
for event in CommonEvent.objects.all():
|
|
utc_tz = pytz.timezone('UTC')
|
|
event_tz = get_event_timezone(event)
|
|
print("Converting common event %s to %s" % (event.id, event_tz))
|
|
event.start_time = utc_tz.localize(timezone.make_naive(event_tz.localize(timezone.make_naive(event.start_time, pytz.utc))))
|
|
event.end_time = utc_tz.localize(timezone.make_naive(event_tz.localize(timezone.make_naive(event.end_time, pytz.utc))))
|
|
event.save()
|
|
|
|
def get_event_timezone(event):
|
|
if event.place is not None:
|
|
return pytz.timezone(event.place.tz)
|
|
elif hasattr(event, 'team') and event.team is not None:
|
|
return pytz.timezone(event.team.tz)
|
|
elif hasattr(event, 'city') and event.city is not None:
|
|
return pytz.timezone(event.city.tz)
|
|
else:
|
|
return pytz.timezone("UTC")
|
|
|
|
class Migration(migrations.Migration):
|
|
|
|
dependencies = [
|
|
('events', '0021_add_account_secret'),
|
|
]
|
|
|
|
operations = [
|
|
migrations.RunPython(localize_event_datetimes, reverse_code=migrations.RunPython.noop),
|
|
migrations.RunPython(localize_commonevent_datetimes, reverse_code=migrations.RunPython.noop),
|
|
]
|