summaryrefslogtreecommitdiff
path: root/archaeological_context_records
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2023-11-13 18:55:30 +0100
committerÉtienne Loks <etienne.loks@iggdrasil.net>2023-11-14 16:57:37 +0100
commitd0d146cc099bfe2d58a8c8ec6e57096661d1fdcb (patch)
tree1007a19ed094bb463a9234909d84412a379a3c9c /archaeological_context_records
parent1d1fd6c794c8ca8e758fc416b43e0f881136057f (diff)
downloadIshtar-d0d146cc099bfe2d58a8c8ec6e57096661d1fdcb.tar.bz2
Ishtar-d0d146cc099bfe2d58a8c8ec6e57096661d1fdcb.zip
⚡️ improve parcel post-treatments - add timestamp to prevent multiple geo and cached_label edition
Diffstat (limited to 'archaeological_context_records')
-rw-r--r--archaeological_context_records/migrations/0102_link_apps.py4
-rw-r--r--archaeological_context_records/migrations/0113_auto_20231113_1610.py38
-rw-r--r--archaeological_context_records/models.py20
-rw-r--r--archaeological_context_records/tests.py12
4 files changed, 43 insertions, 31 deletions
diff --git a/archaeological_context_records/migrations/0102_link_apps.py b/archaeological_context_records/migrations/0102_link_apps.py
index d885acf32..47904b860 100644
--- a/archaeological_context_records/migrations/0102_link_apps.py
+++ b/archaeological_context_records/migrations/0102_link_apps.py
@@ -191,8 +191,4 @@ class Migration(migrations.Migration):
model_name='contextrecord',
index=django.contrib.postgres.indexes.GinIndex(fields=['data'], name='archaeologi_data_1c3119_gin'),
),
- migrations.RunSQL(
- archaeological_context_records.models.CRBulkView.DELETE_SQL),
- migrations.RunSQL(
- archaeological_context_records.models.CRBulkView.CREATE_SQL),
]
diff --git a/archaeological_context_records/migrations/0113_auto_20231113_1610.py b/archaeological_context_records/migrations/0113_auto_20231113_1610.py
new file mode 100644
index 000000000..2d42f2c21
--- /dev/null
+++ b/archaeological_context_records/migrations/0113_auto_20231113_1610.py
@@ -0,0 +1,38 @@
+# Generated by Django 2.2.24 on 2023-11-13 16:10
+
+from django.db import migrations, models
+
+DELETE_SQL = """
+ DROP VIEW IF EXISTS context_records_cached_label_bulk_update;
+"""
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('archaeological_context_records', '0112_migrate_created'),
+ ]
+
+ operations = [
+ migrations.AddField(
+ model_name='contextrecord',
+ name='timestamp_geo',
+ field=models.IntegerField(blank=True, null=True, verbose_name='Timestamp geo'),
+ ),
+ migrations.AddField(
+ model_name='contextrecord',
+ name='timestamp_label',
+ field=models.IntegerField(blank=True, null=True, verbose_name='Timestamp label'),
+ ),
+ migrations.AddField(
+ model_name='historicalcontextrecord',
+ name='timestamp_geo',
+ field=models.IntegerField(blank=True, null=True, verbose_name='Timestamp geo'),
+ ),
+ migrations.AddField(
+ model_name='historicalcontextrecord',
+ name='timestamp_label',
+ field=models.IntegerField(blank=True, null=True, verbose_name='Timestamp label'),
+ ),
+ migrations.RunSQL(DELETE_SQL)
+ ]
diff --git a/archaeological_context_records/models.py b/archaeological_context_records/models.py
index 985390861..2f9737c14 100644
--- a/archaeological_context_records/models.py
+++ b/archaeological_context_records/models.py
@@ -378,26 +378,6 @@ post_save.connect(post_save_cache, sender=DocumentationType)
post_delete.connect(post_save_cache, sender=DocumentationType)
-class CRBulkView(object):
- CREATE_SQL = """
- CREATE VIEW context_records_cached_label_bulk_update
- AS (
- SELECT cr.id AS id, ope.code_patriarche AS main_code,
- ope.year AS year,
- ope.operation_code AS ope_code,
- parcel.section AS section,
- parcel.parcel_number AS number, cr.label AS label
- FROM archaeological_context_records_contextrecord AS cr
- INNER JOIN archaeological_operations_operation ope
- ON ope.id = cr.operation_id
- INNER JOIN archaeological_operations_parcel parcel
- ON cr.parcel_id = parcel.id
- );"""
- DELETE_SQL = """
- DROP VIEW IF EXISTS context_records_cached_label_bulk_update;
- """
-
-
class GeographicSubTownItem(GeoItem):
UPPER_GEO = []
diff --git a/archaeological_context_records/tests.py b/archaeological_context_records/tests.py
index 7a0b41f50..0d838f3ea 100644
--- a/archaeological_context_records/tests.py
+++ b/archaeological_context_records/tests.py
@@ -467,11 +467,10 @@ class ContextRecordTest(ContextRecordInit, TestCase):
cr = self.create_context_record()[0]
cr_pk = cr.pk
self.assertIsNotNone(cr.cached_label)
- # OA1 | A | 1 | CR 1
- ope_id, parcel_sec, parcel_nb, cr_label = cr.cached_label.split(" | ")
+ # OA1 | 12345 | A1 | CR 1
+ ope_id, town_num, parcel_sec_nb, cr_label = cr.cached_label.split(" | ")
self.assertEqual(ope_id, "OA1")
- self.assertEqual(parcel_sec, cr.parcel.section)
- self.assertEqual(parcel_nb, cr.parcel.parcel_number)
+ self.assertEqual(parcel_sec_nb, cr.parcel.section + cr.parcel.parcel_number)
self.assertEqual(cr_label, cr.label)
new_lbl = "UE 2"
@@ -489,9 +488,8 @@ class ContextRecordTest(ContextRecordInit, TestCase):
parcel.save()
cr = models.ContextRecord.objects.get(pk=cr_pk)
self.assertIsNotNone(cr.cached_label)
- ope_id, parcel_sec, parcel_nb, cr_label = cr.cached_label.split(" | ")
- self.assertEqual(parcel_sec, new_sec)
- self.assertEqual(parcel_nb, new_nb)
+ ope_id, town_num, parcel_sec_nb, cr_label = cr.cached_label.split(" | ")
+ self.assertEqual(parcel_sec_nb, new_sec + new_nb)
cr.operation.year = 2017
cr.operation.save()