Select Git revision
0004_auto_20220505_1228.py

Alexa Valentová authored
0004_auto_20220505_1228.py 1.26 KiB
# Generated by Django 4.0.4 on 2022-05-05 10:28
from datetime import date, timedelta
import arrow
from django.db import migrations
from calendar_utils.icalevents import icalevents
from calendar_utils.parser import process_event_list
def update_event_lists(apps, schema):
Calendar = apps.get_model("calendar_utils", "Calendar")
for calendar in Calendar.objects.all():
try:
event_list = icalevents.events(
url=calendar.url,
start=date.today() - timedelta(days=30),
end=date.today() + timedelta(days=60),
)
except ValueError:
print("Could not parse calendar from {}".format(calendar.url))
event_list_hash = str(hash(str(event_list)))
past, future = process_event_list(event_list)
calendar.past_events = past
calendar.future_events = list(reversed(future))
calendar.event_hash = event_list_hash
calendar.last_update = arrow.utcnow().datetime
calendar.save()
class Migration(migrations.Migration):
dependencies = [
("calendar_utils", "0003_remove_calendar_source_calendar_event_hash"),
]
operations = [
migrations.RunPython(update_event_lists, reverse_code=migrations.RunPython.noop)
]