diff options
author | Étienne Loks <etienne.loks@iggdrasil.net> | 2025-05-28 12:29:54 +0200 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2025-05-28 12:29:54 +0200 |
commit | 5afdb6bcbd9459a42ae3a0ee553be0e16bb37c21 (patch) | |
tree | 8f878af6ad565238b8cb89262db3604f8777d833 | |
parent | b63602093deaf1bfce2c5ac0df7c5901796221e9 (diff) | |
download | Ishtar-5afdb6bcbd9459a42ae3a0ee553be0e16bb37c21.tar.bz2 Ishtar-5afdb6bcbd9459a42ae3a0ee553be0e16bb37c21.zip |
🐛 admin town: fix geojson import/export - manage missing provider
-rw-r--r-- | ishtar_common/models_common.py | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/ishtar_common/models_common.py b/ishtar_common/models_common.py index bfbcb2748..01874bf56 100644 --- a/ishtar_common/models_common.py +++ b/ishtar_common/models_common.py @@ -3699,10 +3699,13 @@ class Town(GeographicItem, Imported, DocumentItem, MainItem, models.Model): return q = Town.objects.filter(numero_insee=numero_insee) values = { - "provider": GeoProviderType.objects.get(txt_idx=fields["provider"]), "comment": fields["comment"], - 'multi_polygon': fields["multi_polygon"] + "multi_polygon": fields["multi_polygon"] } + if fields.get("provider", None): + values["provider"], __ = GeoProviderType.objects.get_or_create( + txt_idx=fields["provider"], defaults={"label": fields["provider"]} + ) if q.count(): source_id = q.all()[0].pk q2 = GeoVectorData.objects.filter( @@ -3867,7 +3870,7 @@ class Town(GeographicItem, Imported, DocumentItem, MainItem, models.Model): "data_type": [ "town-limit" ], - "provider": geo.provider.txt_idx, + "provider": geo.provider.txt_idx if geo.provider else None, "comment": geo.comment, "cached_x": geo.cached_x, "cached_y": geo.cached_y, |