diff options
Diffstat (limited to 'archaeological_warehouse/models.py')
-rw-r--r-- | archaeological_warehouse/models.py | 43 |
1 files changed, 34 insertions, 9 deletions
diff --git a/archaeological_warehouse/models.py b/archaeological_warehouse/models.py index 66386113b..ccc16d206 100644 --- a/archaeological_warehouse/models.py +++ b/archaeological_warehouse/models.py @@ -25,10 +25,10 @@ from django.conf import settings from django.contrib.gis.db import models from django.contrib.postgres.indexes import GinIndex from django.core.exceptions import ObjectDoesNotExist -from django.core.urlresolvers import reverse from django.db.models import Q, Max, Count from django.db.models.signals import post_save, post_delete, m2m_changed, pre_delete from django.template.defaultfilters import slugify +from django.urls import reverse from ishtar_common.utils import ugettext_lazy as _, pgettext_lazy from django.apps import apps @@ -344,7 +344,9 @@ class Warehouse( uuid = models.UUIDField(default=uuid.uuid4) name = models.CharField(_("Name"), max_length=200) - warehouse_type = models.ForeignKey(WarehouseType, verbose_name=_("Warehouse type")) + warehouse_type = models.ForeignKey( + WarehouseType, verbose_name=_("Warehouse type"), on_delete=models.PROTECT + ) person_in_charge = models.ForeignKey( "ishtar_common.Person", on_delete=models.SET_NULL, @@ -667,10 +669,18 @@ class WarehouseDivisionLink(models.Model): RELATED_SET_NAME = "divisions" RELATED_ATTRS = ["order", "container_type"] RELATIVE_MODELS = {Warehouse: "warehouse"} - warehouse = models.ForeignKey(Warehouse, related_name="divisions") - container_type = models.ForeignKey(ContainerType, blank=True, null=True) + warehouse = models.ForeignKey( + Warehouse, related_name="divisions", on_delete=models.CASCADE + ) + container_type = models.ForeignKey( + ContainerType, blank=True, null=True, on_delete=models.PROTECT + ) division = models.ForeignKey( - WarehouseDivision, help_text=_("Deprecated - do not use"), blank=True, null=True + WarehouseDivision, + help_text=_("Deprecated - do not use"), + blank=True, + null=True, + on_delete=models.SET_NULL, ) order = models.IntegerField(_("Order"), default=10) objects = WarehouseDivisionLinkManager() @@ -744,11 +754,13 @@ class ContainerTree(models.Model): verbose_name=_("Container"), related_name="container_tree_child", primary_key=True, + on_delete=models.DO_NOTHING, ) container_parent = models.ForeignKey( "archaeological_warehouse.Container", verbose_name=_("Container parent"), related_name="container_tree_parent", + on_delete=models.DO_NOTHING, ) class Meta: @@ -1011,7 +1023,10 @@ class Container( # fields uuid = models.UUIDField(default=uuid.uuid4) location = models.ForeignKey( - Warehouse, verbose_name=_("Location (warehouse)"), related_name="containers" + Warehouse, + verbose_name=_("Location (warehouse)"), + related_name="containers", + on_delete=models.CASCADE, ) responsible = models.ForeignKey( Warehouse, @@ -1020,6 +1035,7 @@ class Container( blank=True, null=True, help_text=_("Deprecated - do not use"), + on_delete=models.SET_NULL, ) responsibility = models.ForeignKey( Warehouse, @@ -1028,9 +1044,13 @@ class Container( blank=True, null=True, help_text=_("Warehouse that owns the container"), + on_delete=models.SET_NULL, ) container_type = models.ForeignKey( - ContainerType, verbose_name=_("Container type"), related_name="containers" + ContainerType, + verbose_name=_("Container type"), + related_name="containers", + on_delete=models.PROTECT, ) reference = models.TextField(_("Container ref.")) comment = models.TextField(_("Comment"), blank=True, default="") @@ -1868,9 +1888,14 @@ class ContainerLocalisationManager(models.Manager): class ContainerLocalisation(models.Model): # TODO: to be deleted.... container = models.ForeignKey( - Container, verbose_name=_("Container"), related_name="division" + Container, + verbose_name=_("Container"), + related_name="division", + on_delete=models.CASCADE, + ) + division = models.ForeignKey( + WarehouseDivisionLink, verbose_name=_("Division"), on_delete=models.CASCADE ) - division = models.ForeignKey(WarehouseDivisionLink, verbose_name=_("Division")) reference = models.CharField(_("Reference"), max_length=200, default="") objects = ContainerLocalisationManager() TO_BE_DELETED = True |