From 2517fe20e73f82bfdcb835cfc477cef283fb40a6 Mon Sep 17 00:00:00 2001
From: Nicolas Joyard <joyard.nicolas@gmail.com>
Date: Thu, 7 Jul 2016 17:54:10 +0200
Subject: [PATCH] Add chamber creation helper

---
 .../francedata/import_representatives.py       | 18 +++++++++++++++---
 1 file changed, 15 insertions(+), 3 deletions(-)

diff --git a/representatives/contrib/francedata/import_representatives.py b/representatives/contrib/francedata/import_representatives.py
index 926bf83..5c6b066 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)
 
-- 
GitLab