summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2022-12-20 18:20:31 +0100
committerÉtienne Loks <etienne.loks@iggdrasil.net>2022-12-20 18:20:31 +0100
commitdf1d3cb3ce342f7c227566922a509367a58886c8 (patch)
tree9ae8673d5bfb6ff3de826b197fc3be1a547616af
parent3938ef0e4997deecbb0d9bc0e192cac82b2e5259 (diff)
downloadIshtar-df1d3cb3ce342f7c227566922a509367a58886c8.tar.bz2
Ishtar-df1d3cb3ce342f7c227566922a509367a58886c8.zip
Utils: adapt to v4 OSM relations importer
-rw-r--r--CHANGES.md3
-rw-r--r--ishtar_common/utils.py23
2 files changed, 23 insertions, 3 deletions
diff --git a/CHANGES.md b/CHANGES.md
index 434a94855..596f2c2d7 100644
--- a/CHANGES.md
+++ b/CHANGES.md
@@ -1,6 +1,6 @@
---
title: Ishtar changelog
-date: 2022-12-05
+date: 2022-12-20
---
Ishtar changelog
@@ -8,6 +8,7 @@ Ishtar changelog
### Features/improvements ###
- Commands: manage update search vector with maintenance script
+- utils: adapt to v4 OSM relations importer
v4.0.32 - 2022-12-12
diff --git a/ishtar_common/utils.py b/ishtar_common/utils.py
index 6ffda0eb6..1d3c4d143 100644
--- a/ishtar_common/utils.py
+++ b/ishtar_common/utils.py
@@ -2141,8 +2141,27 @@ def create_osm_town(rel_id, name, numero_insee=None):
geom = GEOSGeometry(str(geojson))
if geom.geom_type == "GeometryCollection":
geom = geom[0]
- town.limit = geom
- town.center = town.limit.centroid
+
+ GeoVectorData = apps.get_model("ishtar_common", "GeoVectorData")
+ GeoDataType = apps.get_model("ishtar_common", "GeoDataType")
+ GeoProviderType = apps.get_model("ishtar_common", "GeoProviderType")
+ town_content_type = ContentType.objects.get(app_label="ishtar_common", model="town")
+ data_type, __ = GeoDataType.objects.get_or_create(
+ txt_idx="town-limit", defaults={"label": "Limites commune"}
+ )
+ provider, __ = GeoProviderType.objects.get_or_create(
+ txt_idx="openstreetmap", defaults={"label": "OpenStreetMap"}
+ )
+ data = GeoVectorData.objects.create(
+ name="Limite de " + town.name,
+ source_content_type=town_content_type,
+ multi_polygon=geom,
+ source_id=town.pk,
+ data_type=data_type,
+ provider=provider
+ )
+ town.main_geodata = data
+ town._post_save_geo_ok = False
town.save()
return town