diff options
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 |
commit | d0d146cc099bfe2d58a8c8ec6e57096661d1fdcb (patch) | |
tree | 1007a19ed094bb463a9234909d84412a379a3c9c /archaeological_context_records | |
parent | 1d1fd6c794c8ca8e758fc416b43e0f881136057f (diff) | |
download | Ishtar-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')
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() |