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-24 18:32:22 +0200 |
| commit | b041ca58c7d684b224e65858e4cf587e66b1b047 (patch) | |
| tree | ad1d43e8fbf943203e00640ba661edf6f48aa612 /ishtar_common/utils_migrations.py | |
| parent | d279705d133d1db33056be9e1db5e1e8f1448c84 (diff) | |
| download | Ishtar-b041ca58c7d684b224e65858e4cf587e66b1b047.tar.bz2 Ishtar-b041ca58c7d684b224e65858e4cf587e66b1b047.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 |
