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)
Example #3
0
    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)