diff options
author | Étienne Loks <etienne.loks@iggdrasil.net> | 2019-09-04 19:04:05 +0200 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2019-09-04 19:04:05 +0200 |
commit | 6f6485c8ebf46843209d70bcd4dfb5fb78417c29 (patch) | |
tree | c0c99bf70f7df262cd5a76b9b17bcd7dfb84a66c /archaeological_finds/models_finds.py | |
parent | da243748fc3ef819f93835329e5af245b26f2de8 (diff) | |
download | Ishtar-6f6485c8ebf46843209d70bcd4dfb5fb78417c29.tar.bz2 Ishtar-6f6485c8ebf46843209d70bcd4dfb5fb78417c29.zip |
Serialization: finds - UUID for finds, base finds and baskets
Diffstat (limited to 'archaeological_finds/models_finds.py')
-rw-r--r-- | archaeological_finds/models_finds.py | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/archaeological_finds/models_finds.py b/archaeological_finds/models_finds.py index bd1db0700..1d60f612b 100644 --- a/archaeological_finds/models_finds.py +++ b/archaeological_finds/models_finds.py @@ -19,6 +19,7 @@ from collections import OrderedDict import datetime +import uuid from django.conf import settings from django.contrib.gis.db import models @@ -36,7 +37,7 @@ from ishtar_common.utils import cached_label_changed, post_save_geo, \ from ishtar_common.alternative_configs import ALTERNATE_CONFIGS -from ishtar_common.model_managers import ExternalIdManager +from ishtar_common.model_managers import ExternalIdManager, UUIDModelManager from ishtar_common.models import Document, GeneralType, \ HierarchicalType, BaseHistorizedItem, LightHistorizedItem, \ HistoricalRecords, OwnPerms, Person, Basket, post_save_cache, \ @@ -271,6 +272,7 @@ class BaseFind(BulkUpdatedItem, BaseHistorizedItem, GeoItem, OwnPerms, EXTERNAL_ID_KEY = 'base_find_external_id' EXTERNAL_ID_DEPENDENCIES = ['find'] SLUG = 'basefind' + uuid = models.UUIDField(default=uuid.uuid4) label = models.TextField(_(u"Free ID")) external_id = models.TextField(_(u"External ID"), blank=True, null=True) auto_external_id = models.BooleanField( @@ -315,7 +317,7 @@ class BaseFind(BulkUpdatedItem, BaseHistorizedItem, GeoItem, OwnPerms, SearchVectorConfig("cache_complete_id"), SearchVectorConfig("excavation_id"), ] - objects = ExternalIdManager() + objects = UUIDModelManager() class Meta: verbose_name = _(u"Base find") @@ -332,7 +334,7 @@ class BaseFind(BulkUpdatedItem, BaseHistorizedItem, GeoItem, OwnPerms, return self.label def natural_key(self): - return (self.external_id, ) + return (self.uuid, ) def public_representation(self): dct = super(BaseFind, self).public_representation() @@ -1441,9 +1443,10 @@ class Find(BulkUpdatedItem, ValueGetter, DocumentItem, BaseHistorizedItem, ] CACHED_LABELS = ['cached_label', 'cached_periods', 'cached_object_types', 'cached_materials'] - objects = ExternalIdManager() + objects = UUIDModelManager() # fields + uuid = models.UUIDField(default=uuid.uuid4) base_finds = models.ManyToManyField(BaseFind, verbose_name=_(u"Base find"), related_name='find') external_id = models.TextField(_(u"External ID"), blank=True, null=True) @@ -1621,7 +1624,7 @@ class Find(BulkUpdatedItem, ValueGetter, DocumentItem, BaseHistorizedItem, ordering = ('cached_label',) def natural_key(self): - return (self.external_id, ) + return (self.uuid, ) @property def short_class_name(self): |