--- a/src/hdalab/management/commands/import_hda_insee_csv.py Thu Apr 12 01:27:16 2018 +0200
+++ b/src/hdalab/management/commands/import_hda_insee_csv.py Wed Apr 11 12:19:47 2018 +0200
@@ -1,6 +1,11 @@
# -*- coding: utf-8 -*-
'''
-@author: raphv
+Importe les code INSEE dans les fiches HDA (objets :class:`hdabo.models.datasheet`).
+
+**Usage**: ``django-admin import_hda_insee_csv [options] [args [args ...]]``
+
+**Arguments**: <chemin_vers_csv_insee>
+
'''
import csv
import re
@@ -18,21 +23,21 @@
args = '<path_to_csv_file>'
options = ''
help = """Imports HDA Lab INSEE codes from a csv file"""
-
+
def handle(self, *args, **options):
if len(args) == 0 or not args[0]:
raise CommandError("Give a CSV File to import")
-
+
filename = args[0]
-
+
csvfile = open(filename, "rb")
dialect = csv.Sniffer().sniff(csvfile.read(1024))
csvfile.seek(0)
reader = csv.reader(csvfile, dialect)
fieldstoget = [ 'id', 'insee' ]
-
-
+
+
for i,line in enumerate(reader):
if i == 0:
fields = {}
@@ -47,9 +52,9 @@
rawdata = dict([(k,line[v].strip()) for k,v in fields.iteritems()])
# Traitement special pour la Corse
insee = int(re.sub('^2(A|B)','20',rawdata['insee']))
-
+
hda_id = int(rawdata['id'])
-
+
try:
datasheet = Datasheet.objects.get(hda_id=hda_id)
except Datasheet.DoesNotExist:
@@ -60,11 +65,11 @@
except InseeCoords.DoesNotExist:
print "INSEE entry for Insee Code %d does not exist" % insee
inseecoord = None
-
+
if datasheet is not None and inseecoord is not None:
dsextra, created = DatasheetExtras.objects.get_or_create(datasheet=datasheet, defaults={'insee':inseecoord})
if not created:
dsextra.insee = inseecoord
dsextra.save()
-
- csvfile.close()
\ No newline at end of file
+
+ csvfile.close()