summaryrefslogtreecommitdiff
path: root/archaeological_warehouse/models.py
diff options
context:
space:
mode:
Diffstat (limited to 'archaeological_warehouse/models.py')
-rw-r--r--archaeological_warehouse/models.py25
1 files changed, 14 insertions, 11 deletions
diff --git a/archaeological_warehouse/models.py b/archaeological_warehouse/models.py
index 96257da3c..f3fd5c3aa 100644
--- a/archaeological_warehouse/models.py
+++ b/archaeological_warehouse/models.py
@@ -18,6 +18,7 @@
# See the file COPYING for details.
import datetime
+import uuid
from django.conf import settings
from django.contrib.gis.db import models
@@ -28,7 +29,7 @@ from django.template.defaultfilters import slugify
from django.utils.translation import ugettext_lazy as _, pgettext_lazy
from ishtar_common.data_importer import post_importer_action
-from ishtar_common.model_managers import ExternalIdManager
+from ishtar_common.model_managers import ExternalIdManager, UUIDModelManager
from ishtar_common.models import Document, GeneralType, get_external_id, \
LightHistorizedItem, OwnPerms, Address, Person, post_save_cache, \
DashboardFormItem, ShortMenuItem, Organization, OrganizationType, \
@@ -93,8 +94,9 @@ class Warehouse(Address, DocumentItem, GeoItem, QRCodeItem, DashboardFormItem,
)
QUICK_ACTIONS = [QA_LOCK]
- objects = ExternalIdManager()
+ objects = UUIDModelManager()
+ uuid = models.UUIDField(default=uuid.uuid4)
name = models.CharField(_(u"Name"), max_length=200)
warehouse_type = models.ForeignKey(WarehouseType,
verbose_name=_(u"Warehouse type"))
@@ -136,7 +138,7 @@ class Warehouse(Address, DocumentItem, GeoItem, QRCodeItem, DashboardFormItem,
return self.name
def natural_key(self):
- return (self.external_id, )
+ return (self.uuid, )
def _get_base_image_path(self):
return u"{}/{}".format(self.SLUG, self.external_id)
@@ -375,7 +377,7 @@ post_delete.connect(post_save_cache, sender=WarehouseDivision)
class WarehouseDivisionLinkManager(models.Manager):
def get_by_natural_key(self, warehouse, division):
- return self.get(warehouse__external_id=warehouse,
+ return self.get(warehouse__uuid=warehouse,
division__txt_idx=division)
@@ -396,7 +398,7 @@ class WarehouseDivisionLink(models.Model):
return u"{} - {}".format(self.warehouse, self.division)
def natural_key(self):
- return self.warehouse.external_id, self.division.txt_idx
+ return self.warehouse.uuid, self.division.txt_idx
class ContainerType(GeneralType):
@@ -592,9 +594,10 @@ class Container(DocumentItem, LightHistorizedItem, QRCodeItem, GeoItem,
)
QUICK_ACTIONS = [QA_LOCK]
- objects = ExternalIdManager()
+ objects = UUIDModelManager()
# fields
+ uuid = models.UUIDField(default=uuid.uuid4)
location = models.ForeignKey(
Warehouse, verbose_name=_(u"Location (warehouse)"),
related_name='containers')
@@ -641,7 +644,7 @@ class Container(DocumentItem, LightHistorizedItem, QRCodeItem, GeoItem,
return self.cached_label or ""
def natural_key(self):
- return (self.external_id, )
+ return (self.uuid, )
def _generate_cached_label(self):
items = [self.reference, self.precise_location]
@@ -894,9 +897,9 @@ m2m_changed.connect(document_attached_changed,
class ContainerLocalisationManager(models.Manager):
def get_by_natural_key(self, container, warehouse, division):
- return self.get(container__external_id=container,
- division__warehouse__external_id=warehouse,
- division__division__txt_idx = division)
+ return self.get(container__uuid=container,
+ division__warehouse__uuid=warehouse,
+ division__division__txt_idx=division)
class ContainerLocalisation(models.Model):
@@ -919,7 +922,7 @@ class ContainerLocalisation(models.Model):
return lbl
def natural_key(self):
- return self.container.external_id, self.division.warehouse.external_id,\
+ return self.container.uuid, self.division.warehouse.uuid,\
self.division.division.txt_idx
def save(self, *args, **kwargs):