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(  | 
