summaryrefslogtreecommitdiff
path: root/archaeological_operations/models.py
diff options
context:
space:
mode:
Diffstat (limited to 'archaeological_operations/models.py')
-rw-r--r--archaeological_operations/models.py50
1 files changed, 39 insertions, 11 deletions
diff --git a/archaeological_operations/models.py b/archaeological_operations/models.py
index 731d6cb34..568917c97 100644
--- a/archaeological_operations/models.py
+++ b/archaeological_operations/models.py
@@ -28,11 +28,11 @@ from django.contrib.gis.db import models
from django.contrib.gis.db.models.aggregates import Union
from django.contrib.gis.db.models.functions import Centroid
from django.contrib.postgres.indexes import GinIndex
-from django.core.urlresolvers import reverse
from django.db import IntegrityError, transaction
from django.db.models import Q, Count, Sum, Max, Avg
from django.db.models.signals import post_save, m2m_changed, post_delete
from django.forms import ValidationError
+from django.urls import reverse
from ishtar_common.utils import ugettext_lazy as _, pgettext_lazy
from ishtar_common.models import (
@@ -130,7 +130,7 @@ post_save.connect(post_save_cache, sender=ReportState)
post_delete.connect(post_save_cache, sender=ReportState)
-class SiteManager(models.GeoManager):
+class SiteManager(models.Manager):
def get_by_natural_key(self, txt_idx):
return self.get(reference=txt_idx)
@@ -1174,7 +1174,10 @@ class Operation(
null=True,
)
operation_type = models.ForeignKey(
- OperationType, related_name="+", verbose_name=_("Operation type")
+ OperationType,
+ related_name="+",
+ verbose_name=_("Operation type"),
+ on_delete=models.PROTECT,
)
surface = models.FloatField(_("Surface (m2)"), blank=True, null=True)
remains = models.ManyToManyField(
@@ -1322,6 +1325,7 @@ class Operation(
blank=True,
null=True,
related_name="operation_protagonist",
+ on_delete=models.SET_NULL,
)
applicant_authority = models.ForeignKey(
Organization,
@@ -1329,6 +1333,7 @@ class Operation(
blank=True,
null=True,
related_name="operation_applicant_authority",
+ on_delete=models.SET_NULL,
)
minutes_writer = models.ForeignKey(
Person,
@@ -1336,6 +1341,7 @@ class Operation(
blank=True,
null=True,
related_name="minutes_writer",
+ on_delete=models.SET_NULL,
)
cached_towns_label = models.TextField(
_("Cached town label"),
@@ -2122,9 +2128,13 @@ class OperationRecordRelationManager(models.Manager):
class RecordRelations(GeneralRecordRelations, models.Model):
MAIN_ATTR = "left_record"
- left_record = models.ForeignKey(Operation, related_name="right_relations")
- right_record = models.ForeignKey(Operation, related_name="left_relations")
- relation_type = models.ForeignKey(RelationType)
+ left_record = models.ForeignKey(
+ Operation, related_name="right_relations", on_delete=models.CASCADE
+ )
+ right_record = models.ForeignKey(
+ Operation, related_name="left_relations", on_delete=models.CASCADE
+ )
+ relation_type = models.ForeignKey(RelationType, on_delete=models.PROTECT)
objects = OperationRecordRelationManager()
class Meta:
@@ -2171,7 +2181,9 @@ class OperationByDepartment(models.Model):
DROP VIEW IF EXISTS operation_department;
"""
- operation = models.ForeignKey(Operation, verbose_name=_("Operation"))
+ operation = models.ForeignKey(
+ Operation, verbose_name=_("Operation"), on_delete=models.DO_NOTHING
+ )
department = models.ForeignKey(
Department,
verbose_name=_("Department"),
@@ -2462,7 +2474,9 @@ class AdministrativeAct(DocumentItem, BaseHistorizedItem, OwnPerms, ValueGetter)
}
# fields
- act_type = models.ForeignKey(ActType, verbose_name=_("Act type"))
+ act_type = models.ForeignKey(
+ ActType, verbose_name=_("Act type"), on_delete=models.PROTECT
+ )
in_charge = models.ForeignKey(
Person,
blank=True,
@@ -2502,6 +2516,7 @@ class AdministrativeAct(DocumentItem, BaseHistorizedItem, OwnPerms, ValueGetter)
null=True,
related_name="administrative_act",
verbose_name=_("Operation"),
+ on_delete=models.CASCADE,
)
associated_file = models.ForeignKey(
"archaeological_files.File",
@@ -2509,6 +2524,7 @@ class AdministrativeAct(DocumentItem, BaseHistorizedItem, OwnPerms, ValueGetter)
null=True,
related_name="administrative_act",
verbose_name=_("Archaeological file"),
+ on_delete=models.CASCADE,
)
treatment_file = models.ForeignKey(
"archaeological_finds.TreatmentFile",
@@ -2516,6 +2532,7 @@ class AdministrativeAct(DocumentItem, BaseHistorizedItem, OwnPerms, ValueGetter)
null=True,
related_name="administrative_act",
verbose_name=_("Treatment request"),
+ on_delete=models.CASCADE,
)
treatment = models.ForeignKey(
"archaeological_finds.Treatment",
@@ -2523,6 +2540,7 @@ class AdministrativeAct(DocumentItem, BaseHistorizedItem, OwnPerms, ValueGetter)
null=True,
related_name="administrative_act",
verbose_name=_("Treatment"),
+ on_delete=models.CASCADE,
)
signature_date = models.DateField(_("Signature date"), blank=True, null=True)
year = models.IntegerField(_("Year"), blank=True, null=True)
@@ -2792,7 +2810,9 @@ class Parcel(LightHistorizedItem):
on_delete=models.SET_NULL,
)
year = models.IntegerField(_("Year"), blank=True, null=True)
- town = models.ForeignKey(Town, related_name="parcels", verbose_name=_("Town"))
+ town = models.ForeignKey(
+ Town, related_name="parcels", verbose_name=_("Town"), on_delete=models.PROTECT
+ )
section = models.CharField(_("Section"), max_length=4, null=True, blank=True)
parcel_number = models.CharField(
_("Parcel number"), max_length=6, null=True, blank=True
@@ -3050,9 +3070,17 @@ post_save.connect(parcel_post_save, sender=Parcel)
class ParcelOwner(LightHistorizedItem):
uuid = models.UUIDField(default=uuid.uuid4)
owner = models.ForeignKey(
- Person, verbose_name=_("Owner"), related_name="parcel_owner"
+ Person,
+ verbose_name=_("Owner"),
+ related_name="parcel_owner",
+ on_delete=models.PROTECT,
+ )
+ parcel = models.ForeignKey(
+ Parcel,
+ verbose_name=_("Parcel"),
+ related_name="owners",
+ on_delete=models.CASCADE,
)
- parcel = models.ForeignKey(Parcel, verbose_name=_("Parcel"), related_name="owners")
start_date = models.DateField(_("Start date"))
end_date = models.DateField(_("End date"))
objects = UUIDModelManager()