diff options
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 |
commit | fa9a89325a3767a8cc99fca04c8671a193e3378e (patch) | |
tree | 70ff91ba2014342da215d3d2ccb13e9558ce1195 /ishtar_common/utils_migrations.py | |
parent | 9a380773f208abf5aec6bc7f000cce7e57d2cb8b (diff) | |
download | Ishtar-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.py | 21 |
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 |