def get_importer(self, options: dict) -> Tuple[Importer, Body]: if options.get("body"): body = Body.objects.get(oparl_id=options["body"]) else: body = Body.objects.get(id=settings.SITE_DEFAULT_BODY) loader = get_loader_from_body(body.oparl_id) importer = Importer(loader, body, ignore_modified=options["ignore_modified"]) importer.force_singlethread = options["force_singlethread"] return importer, body
def import_update(body_id: Optional[str] = None, ignore_modified: bool = False) -> None: from importer.importer import Importer if body_id: bodies = Body.objects.filter(oparl_id=body_id).all() else: bodies = Body.objects.filter(oparl_id__isnull=False).all() for body in bodies: logger.info("Updating body {}: {}".format(body, body.oparl_id)) loader = get_loader_from_body(body.oparl_id) importer = Importer(loader, body, ignore_modified=ignore_modified) importer.update(body.oparl_id) importer.force_singlethread = True importer.load_files(body.short_name)
def get_importer(self, options: Dict[str, Any]) -> Tuple[Importer, Body]: if options.get("body"): body = Body.objects.get(oparl_id=options["body"]) else: body = Body.objects.get(id=settings.SITE_DEFAULT_BODY) if body.oparl_id is not None: loader = get_loader_from_body(body.oparl_id) importer = Importer( loader, body, ignore_modified=options["ignore_modified"] ) else: importer = Importer( BaseLoader(dict()), ignore_modified=options["ignore_modified"] ) importer.force_singlethread = options["force_singlethread"] importer.download_files = not options["skip_download"] return importer, body
def handle(self, *args, **options): prefix = options["prefix"] body = Body.objects.get(oparl_id__startswith=prefix) loader = get_loader_from_body(body.oparl_id) importer = Importer(loader, body) importer.force_singlethread = options["force_singlethread"] import_plan = [File, Paper, Consultation, AgendaItem] for class_object in import_plan: name = class_object.__name__ stats = class_object.objects.filter( oparl_id__startswith=prefix).delete() logger.info("{}: {}".format(name, stats)) CachedObject.objects.filter( url__startswith=prefix, oparl_type=class_object.__name__).update(to_import=True) for type_class in import_plan: importer.import_type(type_class)