import logging from django.core.management.base import BaseCommand from ...models import Calendar logger = logging.getLogger(__name__) class Command(BaseCommand): def handle(self, *args, **options): self.stdout.write("Removing orphaned calendars...") for cal in Calendar.objects.filter( districtcalendarpage=None, districtcenterpage=None, districthomepage=None, districtpersonpage=None, elections2021calendarpage=None, mainpersonpage=None, senatcampaignhomepage=None, uniwebhomepage=None, uniwebcalendarpage=None, ): try: self.stdout.write(f"- {cal.id} | {cal.url}") cal.delete() except Exception as e: logger.error("Calendar delete failed for %s", cal.url, exc_info=True) self.stdout.write(" - failed") self.stdout.write(str(e)) self.stdout.write("Updating calendars...") for cal in Calendar.objects.all(): self.stdout.write(f"\n@ {cal.id} | {cal.url}") try: cal.update_source() self.stdout.write("+ ok") except Exception as e: logger.error("Calendar update failed for %s", cal.url, exc_info=True) self.stdout.write("- failed") self.stdout.write(str(e)) self.stdout.write("\nUpdating calendars finished!")