diff options
Diffstat (limited to 'chimere/utils.py')
-rw-r--r-- | chimere/utils.py | 20 |
1 files changed, 12 insertions, 8 deletions
diff --git a/chimere/utils.py b/chimere/utils.py index 3e85a70..42f3b06 100644 --- a/chimere/utils.py +++ b/chimere/utils.py @@ -81,9 +81,13 @@ class ImportManager: 'import_key__icontains':'%s:%s;' % (key, import_key), 'import_source':self.importer_instance.source} try: + item = None if pk: - item = cls.objects.get(pk=pk) - else: + try: + item = cls.objects.get(pk=pk) + except: + pass + if not item: item = cls.objects.get(**dct_import) if version and item.import_version == int(version): # no update since the last import @@ -478,10 +482,10 @@ class CSVManager(ImportManager): return (0, 0, msg) reader = csv.reader(source, delimiter=';', quotechar='"') prop_cols = [] - for pm in Marker.properties(): + for pm in Marker.all_properties(): prop_cols.append((pm.name, pm.getAttrName(), pm.getAttrName()+'_set')) - cols = self.COLS + prop_cols + cols = list(self.COLS) + prop_cols datas = [] for idx, row in enumerate(reader): if not idx: # first row @@ -493,7 +497,7 @@ class CSVManager(ImportManager): if len(row) < len(cols): continue pk, name, cats, state = row[0], row[1], row[2], row[3] - description, geom = row[4], row[5] + description, geom = row[4], row[5].upper() COL_INDEX = 6 dct = {'description':description, 'name':name, @@ -508,7 +512,7 @@ class CSVManager(ImportManager): dct['route'] = geom else: continue - import_key = pk if pk else name + import_key = pk if pk else name.decode('utf-8') item, updated, created = self.create_or_update_item(cls, dct, import_key, pk=pk) if updated: @@ -526,8 +530,8 @@ class CSVManager(ImportManager): def export(cls, queryset): dct = {'description':unicode(datetime.date.today()), 'data':[]} cls_name = queryset.model.__name__.lower() - cols = cls.COLS - for pm in queryset.model.properties(): + cols = list(cls.COLS) + for pm in queryset.model.all_properties(): cols.append((pm.name, pm.getAttrName(), pm.getAttrName()+'_set')) header = [col[0] for col in cols] dct['data'].append(header) |