diff options
-rw-r--r-- | chimere/utils.py | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/chimere/utils.py b/chimere/utils.py index 7518076..66f5738 100644 --- a/chimere/utils.py +++ b/chimere/utils.py @@ -83,8 +83,11 @@ class ImportManager(object): raise NotImplementedError def create_or_update_item(self, cls, values, import_key, version=None, - key='', pk=None, category=None): + key='', pk=None, category=None, + import_source=None): from chimere.models import PropertyModel + if not import_source: + import_source = self.importer_instance.source updated, created, item = False, False, None import_key = str(import_key).replace(':', '^') if not values.get('name'): @@ -100,7 +103,7 @@ class ImportManager(object): if import_key or pk: dct_import = { 'import_key__icontains': '%s:%s;' % (key, import_key), - 'import_source': self.importer_instance.source} + 'import_source': import_source} ref_item = cls.objects.filter(**dct_import) try: item = None @@ -139,7 +142,7 @@ class ImportManager(object): values['description'] = \ self.importer_instance.default_description values.update({ - 'import_source': self.importer_instance.source}) + 'import_source': import_source}) values['status'] = self.importer_instance.default_status try: item = cls.objects.create(**values) @@ -1049,7 +1052,8 @@ class OSMManager(ImportManager): ["{} {}".format(node.lon, node.lat) for node in way.get_nodes(resolve_missing=True)] ) - it, updated, created = self.create_or_update_item(cls, dct, pl_id) + it, updated, created = self.create_or_update_item( + cls, dct, pl_id, import_source="OSM") if updated: updated_item += 1 if created: @@ -1061,7 +1065,8 @@ class OSMManager(ImportManager): dct.update(self._get_attributes(node, filtr)) pl_id = "OSM-node-{}".format(node.id) dct['point'] = 'SRID=4326;POINT({} {})'.format(node.lon, node.lat) - it, updated, created = self.create_or_update_item(cls, dct, pl_id) + it, updated, created = self.create_or_update_item( + cls, dct, pl_id, import_source="OSM") if updated: updated_item += 1 if created: |