diff options
| author | Étienne Loks <etienne.loks@iggdrasil.net> | 2019-09-12 15:44:56 +0200 | 
|---|---|---|
| committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2019-09-12 15:44:56 +0200 | 
| commit | b4cb2165341451bc84e14a10608a18b4b367bdf1 (patch) | |
| tree | 5b31facf87206255bdaf7cedf1078c523388068c /archaeological_warehouse/models.py | |
| parent | 1352fd1274896bc0fc5a495132babfb12b360d0c (diff) | |
| download | Ishtar-b4cb2165341451bc84e14a10608a18b4b367bdf1.tar.bz2 Ishtar-b4cb2165341451bc84e14a10608a18b4b367bdf1.zip | |
Migrate to UUID: warehoue, containers, person, organization
Diffstat (limited to 'archaeological_warehouse/models.py')
| -rw-r--r-- | archaeological_warehouse/models.py | 25 | 
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): | 
