summaryrefslogtreecommitdiff
path: root/archaeological_warehouse
diff options
context:
space:
mode:
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
commitc682a67e79d4a2f47ff97940c377aeb4fcc4ad05 (patch)
tree7c17d41ff47d0ec8d3061f42e37d8e0d29d8a8a2 /archaeological_warehouse
parente6fc3223057ff1c79ad15f2f14d66dc195cffacd (diff)
downloadIshtar-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.py31
-rw-r--r--archaeological_warehouse/migrations/0125_migrate_cached_town.py29
-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.py19
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