diff --git a/representatives/contrib/francedata/import_representatives.py b/representatives/contrib/francedata/import_representatives.py index 926bf83e5d9fe09443545529aa529e5ed1d04548..5c6b06683f3ce1e825260f8a35936919a28e9dbb 100644 --- a/representatives/contrib/francedata/import_representatives.py +++ b/representatives/contrib/francedata/import_representatives.py @@ -90,6 +90,18 @@ class GenericImporter(object): return (instance, created) +def ensure_chambers(): + """ + Ensures chambers are created + """ + france = Country.objects.get(name="France") + for key in ('AN', 'SEN'): + variant = FranceDataVariants[key] + Chamber.objects.get_or_create(name=variant['chamber'], + abbreviation=variant['abbreviation'], + country=france) + + class FranceDataImporter(GenericImporter): url = 'http://francedata.future/data/parlementaires.json' @@ -99,9 +111,7 @@ class FranceDataImporter(GenericImporter): def __init__(self, variant): self.france = Country.objects.get(name="France") self.variant = FranceDataVariants[variant] - self.chamber, _ = Chamber.objects.get_or_create( - name=self.variant['chamber'], - abbreviation=self.variant['abbreviation'], country=self.france) + self.chamber = Chamber.objects.get(name=self.variant['chamber']) self.ch_constituency, _ = Constituency.objects.get_or_create( name=self.variant['chamber'], country=self.france) @@ -311,6 +321,8 @@ def main(stream=None): if not apps.ready: django.setup() + ensure_chambers() + an_importer = FranceDataImporter('AN') GenericImporter.pre_import(an_importer)