diff options
-rw-r--r-- | archaeological_operations/migrations/0063_parcel_uuid.py | 32 | ||||
-rw-r--r-- | archaeological_operations/models.py | 22 | ||||
-rw-r--r-- | ishtar_common/serializers.py | 17 |
3 files changed, 48 insertions, 23 deletions
diff --git a/archaeological_operations/migrations/0063_parcel_uuid.py b/archaeological_operations/migrations/0063_parcel_uuid.py new file mode 100644 index 000000000..4cd00f4f0 --- /dev/null +++ b/archaeological_operations/migrations/0063_parcel_uuid.py @@ -0,0 +1,32 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.18 on 2019-09-07 19:56 +from __future__ import unicode_literals + +import uuid + +from django.db import migrations, models + +from ishtar_common.utils_migrations import set_uuid_helper + + + +class Migration(migrations.Migration): + + dependencies = [ + ('archaeological_operations', '0062_parcelowner_uuid'), + ] + + operations = [ + migrations.AddField( + model_name='parcel', + name='uuid', + field=models.UUIDField(blank=True, null=True), + ), + migrations.RunPython(set_uuid_helper('archaeological_operations', + 'Parcel')), + migrations.AlterField( + model_name='parcel', + name='uuid', + field=models.UUIDField(default=uuid.uuid4), + ), + ] diff --git a/archaeological_operations/models.py b/archaeological_operations/models.py index b6686aa21..c2e4e618b 100644 --- a/archaeological_operations/models.py +++ b/archaeological_operations/models.py @@ -2203,19 +2203,6 @@ def strip_zero(value): return value -class ParcelManager(models.Manager): - def get_by_natural_key(self, associated_file, operation, year, town_insee, - town_year, section, parcel_number): - q = {"year": year, "town__numero_insee": town_insee, - "town__year": town_year, - "section": section, "parcel_number": parcel_number} - if associated_file: - q['associated_file__external_id'] = associated_file - if operation: - q['operation__code_patriarche'] = operation - return self.get(**q) - - class Parcel(LightHistorizedItem): EXTERNAL_ID_KEY = 'parcel_external_id' BASE_SEARCH_VECTORS = [ @@ -2224,8 +2211,9 @@ class Parcel(LightHistorizedItem): SearchVectorConfig("cached_label"), ] PARENT_SEARCH_VECTORS = ['operation'] - objects = ParcelManager() + objects = UUIDModelManager() + uuid = models.UUIDField(default=uuid.uuid4) associated_file = models.ForeignKey( 'archaeological_files.File', related_name='parcels', verbose_name=_("File"), @@ -2266,11 +2254,7 @@ class Parcel(LightHistorizedItem): return self.short_label def natural_key(self): - return ( - self.associated_file.external_id if self.associated_file else '', - self.operation.code_patriarche if self.operation else '', - self.year, self.town.numero_insee, self.town.year, self.section, - self.parcel_number) + return (self.uuid, ) """ def merge(self, parcel): diff --git a/ishtar_common/serializers.py b/ishtar_common/serializers.py index c6cd118c7..bd0dac3d4 100644 --- a/ishtar_common/serializers.py +++ b/ishtar_common/serializers.py @@ -16,10 +16,14 @@ from ishtar_common.serializers_utils import generic_get_results, \ archive_serialization, generic_archive_files, SERIALIZATION_VERSION, \ get_model_from_filename -from archaeological_operations.serializers import operation_serialization -from archaeological_context_records.serializers import cr_serialization -from archaeological_finds.serializers import find_serialization -from archaeological_warehouse.serializers import warehouse_serialization +from archaeological_operations.serializers import operation_serialization, \ + OPERATION_MODEL_LIST +from archaeological_context_records.serializers import cr_serialization, \ + CR_MODEL_LIST +from archaeological_finds.serializers import find_serialization, \ + FIND_MODEL_LIST +from archaeological_warehouse.serializers import warehouse_serialization, \ + WAREHOUSE_MODEL_LIST class PublicSerializer(serializers.BaseSerializer): @@ -188,6 +192,11 @@ def restore_serialized(archive_name, delete_existing=False): ("common_imports", IMPORT_MODEL_LIST), ("common_geo", GEO_MODEL_LIST), ("common_directory", DIRECTORY_MODEL_LIST), + ("documents", [models.Document]), + ("operations", OPERATION_MODEL_LIST), + ("context_records", CR_MODEL_LIST), + ("finds", FIND_MODEL_LIST), + ("warehouse", WAREHOUSE_MODEL_LIST), ) namelist = zip_file.namelist() for current_dir, model_list in DIRS: |