From fa9a89325a3767a8cc99fca04c8671a193e3378e Mon Sep 17 00:00:00 2001 From: Étienne Loks Date: Thu, 31 Jul 2025 18:35:23 +0200 Subject: ✨ GIS: automatically update import key for geovectordata MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ishtar_common/utils_migrations.py | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) (limited to 'ishtar_common/utils_migrations.py') 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 -- cgit v1.2.3