diff options
Diffstat (limited to 'archaeological_finds/models_finds.py')
| -rw-r--r-- | archaeological_finds/models_finds.py | 44 | 
1 files changed, 36 insertions, 8 deletions
| diff --git a/archaeological_finds/models_finds.py b/archaeological_finds/models_finds.py index 432bd5467..3b6392039 100644 --- a/archaeological_finds/models_finds.py +++ b/archaeological_finds/models_finds.py @@ -71,17 +71,18 @@ from ishtar_common.models import (      SearchVectorConfig,      ValueGetter,  ) -from ishtar_common.models_common import HistoricalRecords, Imported, SerializeItem, \ +from ishtar_common.models_common import HistoricalRecords, SerializeItem, \      GeoVectorData, geodata_attached_changed  from ishtar_common.utils import PRIVATE_FIELDS  from archaeological_operations.models import (      AdministrativeAct, -    Operation,      CulturalAttributionType, +    Operation, +    Period,  ) -from archaeological_context_records.models import ContextRecord, Dating, \ +from archaeological_context_records.models import BaseDating, ContextRecord, Dating, \      GeographicSubTownItem  from archaeological_warehouse.models import Warehouse @@ -1285,6 +1286,7 @@ class Find(          "container__cached_label": _("Current container"),          "container_ref__cached_label": _("Reference container"),          "datings__period__label": _("Periods"), +        "periods__label": _("Periods"),          "cached_periods": _("Periods"),          "material_types__label": _("Material types"),          "cached_materials": _("Material types"), @@ -1322,7 +1324,7 @@ class Find(                  "base_finds__context_record__operation__towns__areas__parent__label",                  _("Extended area"),              ), -            ("datings__period__label", _("Chronological period")), +            ("periods__label", _("Chronological period")),              ("material_types__label", _("Material type")),              ("object_types__label", _("Object type")),              ("recommended_treatments__label", _("Recommended treatments")), @@ -1513,6 +1515,11 @@ class Find(              pgettext_lazy("key for text search", "object-type"),              "object_types__label__iexact",          ), +        "periods": SearchAltName( +            pgettext_lazy("key for text search", "period"), +            "periods__label__iexact", +            related_name="periods", +        ),          "recommended_treatments": SearchAltName(              pgettext_lazy("key for text search", "recommended-treatments"),              "recommended_treatments__label__iexact", @@ -1958,7 +1965,7 @@ class Find(          SearchVectorConfig("museum_inventory_transcript", "local"),      ]      M2M_SEARCH_VECTORS = [ -        SearchVectorConfig("datings__period__label", "local"), +        SearchVectorConfig("periods__label", "local"),          SearchVectorConfig("integrities__label", "raw"),          SearchVectorConfig("material_types__label", "local"),          SearchVectorConfig("object_types__label", "raw"), @@ -2064,7 +2071,7 @@ class Find(      HISTORICAL_M2M = [          "material_types",          "technical_processes", -        "datings", +        # "datings",          "cultural_attributions",          "conservatory_states",          "object_types", @@ -2207,9 +2214,10 @@ class Find(          verbose_name=_("Downstream treatment"),          on_delete=models.SET_NULL,      ) -    datings = models.ManyToManyField( +    datings_old = models.ManyToManyField(          Dating, verbose_name=_("Dating"), related_name="find"      ) +    periods = models.ManyToManyField(Period, verbose_name=_("Periods"), blank=True)      cultural_attributions = models.ManyToManyField(          CulturalAttributionType, verbose_name=_("Cultural attribution"), blank=True      ) @@ -2937,6 +2945,10 @@ class Find(          return self.documents.count()      @property +    def periods_count(self): +        return self.periods.count() + +    @property      def operation(self):          bf = self.get_first_base_find()          if not bf or not bf.context_record or not bf.context_record.operation: @@ -3246,7 +3258,7 @@ class Find(          return get_generated_id("museum_complete_identifier", self) or ""      def _generate_cached_periods(self): -        return " & ".join([dating.period.label for dating in self.datings.all()]) +        return " & ".join([period.label for period in self.periods.all()])      def _generate_cached_object_types(self):          return " & ".join([str(obj) for obj in self.object_types.all()]) @@ -3820,6 +3832,22 @@ m2m_changed.connect(base_find_find_changed, sender=Find.base_finds.through)  m2m_changed.connect(document_attached_changed, sender=Find.documents.through) +class FindDating(BaseDating): +    SERIALIZE_EXCLUDE = ["find"] +    CURRENT_MODEL = Find + +    find = models.ForeignKey( +        Find, +        verbose_name=_("Find"), +        related_name="datings", +        on_delete=models.CASCADE, +    ) + +    class Meta: +        verbose_name = _("Find dating") +        verbose_name_plural = _("Find datings") + +  class FindInsideContainer(models.Model):      CREATE_SQL = """      CREATE VIEW find_inside_container AS | 
