diff --git a/api/management/commands/sync_appealdocs.py b/api/management/commands/sync_appealdocs.py index 744759f8f..312af3062 100644 --- a/api/management/commands/sync_appealdocs.py +++ b/api/management/commands/sync_appealdocs.py @@ -2,10 +2,8 @@ from datetime import datetime, timezone from dateutil.relativedelta import relativedelta from django.core.management.base import BaseCommand -from django.core.exceptions import ObjectDoesNotExist -from api.models import Appeal, AppealDocument, CronJob, CronJobStatus +from api.models import Appeal, AppealDocument, AppealDocumentType, CronJob, CronJobStatus from api.logger import logger -from collections import defaultdict from django.conf import settings CRON_NAME = "sync_appealdocs" @@ -32,6 +30,7 @@ def handle(self, *args, **options): logger.info("Starting appeal document ingest") if options["fullscan"]: + # FIXME: should be inserted to cron jobs, 4 monthly or so. Or create a calendar note for maintainer. # If the `--fullscan` option is passed (at the end of command), check ALL appeals. Runs an hour! print("Doing a full scan of all Appeals") qset = Appeal.objects.all() @@ -69,6 +68,16 @@ def handle(self, *args, **options): existing.append(document_url) else: try: + iso = result["LocationCountryCode"] + if not iso: + iso = Appeal.objects.get(pk=appeal_id).country.iso + if not iso: + logger.warning("Wrong AppealDocument data – unknown country.") + continue + appealtype_id = result["AppealsTypeId"] + if not appealtype_id or not AppealDocumentType.objects.filter(id=appealtype_id): # not pk=...! + logger.warning("Wrong AppealDocument data – unknown type_id: %s", appealtype_id) + continue created_at = None if "AppealsDate" in result: created_at = self.parse_date(result["AppealsDate"]) @@ -79,8 +88,8 @@ def handle(self, *args, **options): appeal_id=appeal_id, name=result["AppealsName"], description=result["AppealOrigType"], - type_id=result["AppealsTypeId"], - iso_id=result["LocationCountryCode"], + type_id=appealtype_id, + iso_id=iso, created_at=created_at ) created.append(document_url)