summaryrefslogtreecommitdiff
path: root/archaeological_finds/models_finds.py
diff options
context:
space:
mode:
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
commit6f6485c8ebf46843209d70bcd4dfb5fb78417c29 (patch)
treec0c99bf70f7df262cd5a76b9b17bcd7dfb84a66c /archaeological_finds/models_finds.py
parentda243748fc3ef819f93835329e5af245b26f2de8 (diff)
downloadIshtar-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.py13
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):