summaryrefslogtreecommitdiff
path: root/ishtar_common/utils_migrations.py
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2025-07-31 18:35:23 +0200
committerÉtienne Loks <etienne.loks@iggdrasil.net>2025-10-15 19:33:00 +0200
commitfa9a89325a3767a8cc99fca04c8671a193e3378e (patch)
tree70ff91ba2014342da215d3d2ccb13e9558ce1195 /ishtar_common/utils_migrations.py
parent9a380773f208abf5aec6bc7f000cce7e57d2cb8b (diff)
downloadIshtar-fa9a89325a3767a8cc99fca04c8671a193e3378e.tar.bz2
Ishtar-fa9a89325a3767a8cc99fca04c8671a193e3378e.zip
✨ GIS: automatically update import key for geovectordata
Diffstat (limited to 'ishtar_common/utils_migrations.py')
-rw-r--r--ishtar_common/utils_migrations.py21
1 files changed, 21 insertions, 0 deletions
diff --git a/ishtar_common/utils_migrations.py b/ishtar_common/utils_migrations.py
index 5654a8897..6d75ff885 100644
--- a/ishtar_common/utils_migrations.py
+++ b/ishtar_common/utils_migrations.py
@@ -212,3 +212,24 @@ def migrate_created_field(apps, app_name, model_names):
continue
history_date = q.all()[0].history_date
item.__class__.objects.filter(pk=item.pk).update(created=history_date)
+
+
+def update_import_key(geovectordata): # 0267_gis_import_key
+ if geovectordata.import_key or not geovectordata.data_type:
+ return
+ GeoVectorData = geovectordata.__class__
+ # by default set import key to data type
+ base_import_key = import_key = geovectordata.data_type.txt_idx
+ base_q = GeoVectorData.objects.filter(
+ source_content_type_id=geovectordata.source_content_type_id,
+ source_id=geovectordata.source_id
+ )
+ idx = 0
+ q = base_q.filter(import_key=import_key)
+ while q.count():
+ idx += 1
+ import_key = f"{base_import_key}-{idx}"
+ q = base_q.filter(import_key=import_key)
+ GeoVectorData.objects.filter(pk=geovectordata.id).update(
+ import_key=import_key)
+ return True