diff options
author | Étienne Loks <etienne.loks@iggdrasil.net> | 2022-05-12 17:16:26 +0200 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2022-12-12 12:21:00 +0100 |
commit | 59f551ef2058ca50699dd4055892063e44055402 (patch) | |
tree | 44191d7baccf4fb5610470593349d420b48d2b35 | |
parent | c0b5c70f34fe0df39da08818a8649c1f0125e905 (diff) | |
download | Ishtar-59f551ef2058ca50699dd4055892063e44055402.tar.bz2 Ishtar-59f551ef2058ca50699dd4055892063e44055402.zip |
Geodata: import - fix reverse and default data
-rw-r--r-- | ishtar_common/data_importer.py | 7 | ||||
-rw-r--r-- | ishtar_common/models_common.py | 3 | ||||
-rw-r--r-- | ishtar_common/models_imports.py | 5 |
3 files changed, 6 insertions, 9 deletions
diff --git a/ishtar_common/data_importer.py b/ishtar_common/data_importer.py index 0616e2a10..5090fb15b 100644 --- a/ishtar_common/data_importer.py +++ b/ishtar_common/data_importer.py @@ -518,7 +518,7 @@ class StrChoiceFormater(Formater, ChoiceChecker): for value in values: new_values += r.split(value) values = new_values - for value in values: + for value in set(values): base_value = copy.copy(value) value = self.prepare(value) if value in self.equiv_dict: @@ -1376,12 +1376,11 @@ class Importer(object): geodata = {} if self.TYPE == "gis": if "geodata" in data: - geodata = data.pop("geodata") + geodata = self._defaults.get(("geodata",), {}) + geodata.update(data.pop("geodata")) obj, created = self.get_object(self.OBJECT_CLS, data, idx_line=idx_line) if self.simulate: return data - # print(data) - # print(self._defaults) if self.import_instance: self.import_instance.add_imported_line(self.idx_line) diff --git a/ishtar_common/models_common.py b/ishtar_common/models_common.py index 12a5db0df..35dd4aef1 100644 --- a/ishtar_common/models_common.py +++ b/ishtar_common/models_common.py @@ -2276,9 +2276,6 @@ class GeoVectorData(Imported, OwnPerms): if not srid or srid != geom.srid: point = geom.transform(srid, clone=True) x, y = point.x, point.y - # Coordinates are reversed - should be fixed on Django 3.2 - if srid in (4326, 4979): - x, y = y, x else: x, y = point.x, point.y if dim == 2: diff --git a/ishtar_common/models_imports.py b/ishtar_common/models_imports.py index aab404b63..6f6d7109e 100644 --- a/ishtar_common/models_imports.py +++ b/ishtar_common/models_imports.py @@ -1091,7 +1091,6 @@ RE_COORDS = r"(" + RE_NUMBER + r") (" + RE_NUMBER + r")" def _reverse_coordinates(wkt): - # TODO: à effacer return re.sub(RE_COORDS, r"\2 \1", wkt) @@ -1110,7 +1109,9 @@ def convert_geom(feature, srid): if profile.srs and profile.srs.srid: srs = profile.srs.srid if srs != srid: - feature = GEOSGeometry(feature).transform(srs, clone=True).ewkt + # Coordinates are reversed - should be fixed on Django 3.2 + feature = _reverse_coordinates( + GEOSGeometry(feature).transform(srs, clone=True).ewkt) return feature |