diff options
| author | Étienne Loks <etienne.loks@iggdrasil.net> | 2025-10-24 15:05:28 +0200 |
|---|---|---|
| committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2025-10-27 12:42:53 +0100 |
| commit | c682a67e79d4a2f47ff97940c377aeb4fcc4ad05 (patch) | |
| tree | 7c17d41ff47d0ec8d3061f42e37d8e0d29d8a8a2 /archaeological_warehouse | |
| parent | e6fc3223057ff1c79ad15f2f14d66dc195cffacd (diff) | |
| download | Ishtar-c682a67e79d4a2f47ff97940c377aeb4fcc4ad05.tar.bz2 Ishtar-c682a67e79d4a2f47ff97940c377aeb4fcc4ad05.zip | |
🐛 ✨ person, organization tables: fix and optimize town name and person type list (refs #6441)
Diffstat (limited to 'archaeological_warehouse')
| -rw-r--r-- | archaeological_warehouse/migrations/0124_warehouse_cached_town.py | 31 | ||||
| -rw-r--r-- | archaeological_warehouse/migrations/0125_migrate_cached_town.py | 29 | ||||
| -rw-r--r-- | archaeological_warehouse/migrations/0126_add_timezone_django_v4.py (renamed from archaeological_warehouse/migrations/0124_add_timezone_django_v4.py) | 4 | ||||
| -rw-r--r-- | archaeological_warehouse/models.py | 19 |
4 files changed, 65 insertions, 18 deletions
diff --git a/archaeological_warehouse/migrations/0124_warehouse_cached_town.py b/archaeological_warehouse/migrations/0124_warehouse_cached_town.py new file mode 100644 index 000000000..669bcd3af --- /dev/null +++ b/archaeological_warehouse/migrations/0124_warehouse_cached_town.py @@ -0,0 +1,31 @@ +# Generated by Django 2.2.24 on 2025-10-24 15:21 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('archaeological_warehouse', '0123_warehouse_container_ishtar_users'), + ] + + operations = [ + migrations.AddField( + model_name='historicalwarehouse', + name='cached_town', + field=models.TextField(blank=True, default='', verbose_name='Cached town'), + ), + migrations.AddField( + model_name='warehouse', + name='cached_town', + field=models.TextField(blank=True, default='', verbose_name='Cached town'), + ), + migrations.RemoveField( + model_name='historicalwarehouse', + name='cached_town_label', + ), + migrations.RemoveField( + model_name='warehouse', + name='cached_town_label', + ), + ] diff --git a/archaeological_warehouse/migrations/0125_migrate_cached_town.py b/archaeological_warehouse/migrations/0125_migrate_cached_town.py new file mode 100644 index 000000000..49f914185 --- /dev/null +++ b/archaeological_warehouse/migrations/0125_migrate_cached_town.py @@ -0,0 +1,29 @@ +# Generated by Django 2.2.24 on 2025-10-24 12:59 + +from django.db import migrations + + +def _generate_cached_town(Town, town): + if town.precise_town_id: + return Town.objects.get(id=town.precise_town_id).name + return town.town or "" + + +def migrate_cached_towns(apps, __): + Town = apps.get_model("ishtar_common", "Town") + Warehouse = apps.get_model("archaeological_warehouse", "Warehouse") + for warehouse in Warehouse.objects.all(): + Warehouse.objects.filter(pk=warehouse.pk).update( + cached_town=_generate_cached_town(Town, warehouse), + ) + + +class Migration(migrations.Migration): + + dependencies = [ + ('archaeological_warehouse', '0124_warehouse_cached_town'), + ] + + operations = [ + migrations.RunPython(migrate_cached_towns) + ] diff --git a/archaeological_warehouse/migrations/0124_add_timezone_django_v4.py b/archaeological_warehouse/migrations/0126_add_timezone_django_v4.py index 356140e11..41cda4e35 100644 --- a/archaeological_warehouse/migrations/0124_add_timezone_django_v4.py +++ b/archaeological_warehouse/migrations/0126_add_timezone_django_v4.py @@ -10,8 +10,8 @@ import re class Migration(migrations.Migration): dependencies = [ - ('ishtar_common', '0265_add_timezone_django_v4'), - ('archaeological_warehouse', '0123_warehouse_container_ishtar_users'), + ('ishtar_common', '0267_add_timezone_django_v4'), + ('archaeological_warehouse', '0125_migrate_cached_town'), ] operations = [ diff --git a/archaeological_warehouse/models.py b/archaeological_warehouse/models.py index bc3015b93..9c465ebf1 100644 --- a/archaeological_warehouse/models.py +++ b/archaeological_warehouse/models.py @@ -294,10 +294,10 @@ class Warehouse( SHOW_URL = "show-warehouse" DELETE_URL = "delete-warehouse" DOWN_MODEL_UPDATE = ["containers", "responsibilities"] - TABLE_COLS = ["name", "warehouse_type__label", "cached_town_label"] + TABLE_COLS = ["name", "warehouse_type__label", "cached_town"] COL_LABELS = { "warehouse_type__label": _("Type"), - "cached_town_label": _("Town"), + "cached_town": _("Town"), } INITIAL_VALUES = ["name", "slug"] NEW_QUERY_ENGINE = True @@ -340,7 +340,7 @@ class Warehouse( DEFAULT_SEARCH_FORM = ("archaeological_warehouse.forms", "WarehouseSelect") GEO_LABEL = "name" - CACHED_LABELS = ["cached_town_label"] + CACHED_LABELS = ["cached_town"] QA_EDIT = QuickAction( url="warehouse-qa-bulk-update", @@ -433,12 +433,6 @@ class Warehouse( default=0, help_text=_("Automatically generated"), ) - cached_town_label = models.TextField( - _("Cached town label"), - blank=True, - default="", - help_text=_("Generated automatically - do not edit"), - ) SUB_ADDRESSES = ["organization", "person_in_charge"] class Meta: @@ -650,13 +644,6 @@ class Warehouse( wdiv.delete() merge_model_objects(self, item, keep_old=keep_old) - def _generate_cached_town_label(self): - if self.precise_town: - return str(self.precise_town) - if self.town: - return self.town - return "" - def check_cascade_update(self): # arbitrary check if a "location" or a "responsibility" container are impacted by a change # arbitrary because check every formula is not efficient |
