# 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 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) ]