diff options
Diffstat (limited to 'archaeological_finds/models_finds.py')
-rw-r--r-- | archaeological_finds/models_finds.py | 38 |
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( |