summaryrefslogtreecommitdiff
path: root/archaeological_finds/models_finds.py
diff options
context:
space:
mode:
Diffstat (limited to 'archaeological_finds/models_finds.py')
-rw-r--r--archaeological_finds/models_finds.py38
1 files changed, 32 insertions, 6 deletions
diff --git a/archaeological_finds/models_finds.py b/archaeological_finds/models_finds.py
index 738da19a4..421274524 100644
--- a/archaeological_finds/models_finds.py
+++ b/archaeological_finds/models_finds.py
@@ -182,7 +182,7 @@ class BaseFind(BulkUpdatedItem, BaseHistorizedItem, OwnPerms):
SpatialReferenceSystem, verbose_name=_(u"Spatial Reference System"),
blank=True, null=True)
point_2d = models.PointField(_(u"Point (2D)"), blank=True, null=True)
- point = models.PointField(_(u"Point"), blank=True, null=True, dim=3)
+ point = models.PointField(_(u"Point (3D)"), blank=True, null=True, dim=3)
line = models.LineStringField(_(u"Line"), blank=True, null=True)
polygon = models.PolygonField(_(u"Polygon"), blank=True, null=True)
cache_short_id = models.TextField(
@@ -638,7 +638,9 @@ class Find(BulkUpdatedItem, ValueGetter, BaseHistorizedItem, ImageModel,
label = models.TextField(_(u"Free ID"))
description = models.TextField(_(u"Description"), blank=True, null=True)
material_types = models.ManyToManyField(
- MaterialType, verbose_name=_(u"Material types"), related_name='finds')
+ MaterialType, verbose_name=_(u"Material types"), related_name='finds',
+ blank=True
+ )
conservatory_state = models.ForeignKey(
ConservatoryState, verbose_name=_(u"Conservatory state"), blank=True,
null=True, on_delete=models.SET_NULL)
@@ -646,7 +648,7 @@ class Find(BulkUpdatedItem, ValueGetter, BaseHistorizedItem, ImageModel,
blank=True, null=True)
preservation_to_considers = models.ManyToManyField(
PreservationType, verbose_name=_(u"Type of preservation to consider"),
- related_name='finds')
+ related_name='finds', blank=True)
volume = models.FloatField(_(u"Volume (l)"), blank=True, null=True)
weight = models.FloatField(_(u"Weight (g)"), blank=True, null=True)
weight_unit = models.CharField(_(u"Weight unit"), max_length=4,
@@ -668,13 +670,15 @@ class Find(BulkUpdatedItem, ValueGetter, BaseHistorizedItem, ImageModel,
is_complete = models.NullBooleanField(_(u"Is complete?"), blank=True,
null=True)
object_types = models.ManyToManyField(
- ObjectType, verbose_name=_(u"Object types"), related_name='find')
+ ObjectType, verbose_name=_(u"Object types"), related_name='find',
+ blank=True
+ )
integrities = models.ManyToManyField(
IntegrityType, verbose_name=_(u"Integrity / interest"),
- related_name='find')
+ related_name='find', blank=True)
remarkabilities = models.ManyToManyField(
RemarkabilityType, verbose_name=_(u"Remarkability"),
- related_name='find')
+ related_name='find', blank=True)
min_number_of_individuals = models.IntegerField(
_(u"Minimum number of individuals (MNI)"), blank=True, null=True)
length = models.FloatField(_(u"Length (cm)"), blank=True, null=True)
@@ -735,6 +739,11 @@ class Find(BulkUpdatedItem, ValueGetter, BaseHistorizedItem, ImageModel,
return u" ; ".join([unicode(dating) for dating in self.datings.all()])
@property
+ def materials(self):
+ return u" ; ".join([unicode(material)
+ for material in self.material_types.all()])
+
+ @property
def show_url(self):
return reverse('show-find', args=[self.pk, ''])
@@ -776,6 +785,23 @@ class Find(BulkUpdatedItem, ValueGetter, BaseHistorizedItem, ImageModel,
bf.context_record.operation.get_reference(),
self.index)
+ def context_records_lbl(self):
+ return u" - ".join(
+ [bf.context_record.cached_label for bf in self.base_finds.all()]
+ )
+ context_records_lbl.short_description = _(u"Context record")
+ context_records_lbl.admin_order_field = \
+ "base_finds__context_record__cached_label"
+
+ def operations_lbl(self):
+ return u" - ".join(
+ [bf.context_record.operation.cached_label
+ for bf in self.base_finds.all()]
+ )
+ operations_lbl.short_description = _(u"Operation")
+ operations_lbl.admin_order_field = \
+ "base_finds__context_record__operation__cached_label"
+
def _get_treatments(self, model, rel='upstream', limit=None):
treatments, findtreats = [], []
q = model.objects.filter(