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.py75
1 files changed, 61 insertions, 14 deletions
diff --git a/archaeological_finds/models_finds.py b/archaeological_finds/models_finds.py
index 89bbf245f..d3b1934e1 100644
--- a/archaeological_finds/models_finds.py
+++ b/archaeological_finds/models_finds.py
@@ -427,6 +427,7 @@ class DiscoveryMethod(OrderedHierarchicalType):
)
ADMIN_SECTION = _("Finds")
+
post_save.connect(post_save_cache, sender=DiscoveryMethod)
post_delete.connect(post_save_cache, sender=DiscoveryMethod)
@@ -507,6 +508,38 @@ post_save.connect(post_save_cache, sender=InventoryConformity)
post_delete.connect(post_save_cache, sender=InventoryConformity)
+class OwnerType(OrderedHierarchicalType):
+ class Meta:
+ verbose_name = _("Owner type")
+ verbose_name_plural = _("Owner types")
+ ordering = (
+ "order",
+ "parent__label",
+ "label",
+ )
+ ADMIN_SECTION = _("Finds")
+
+
+post_save.connect(post_save_cache, sender=OwnerType)
+post_delete.connect(post_save_cache, sender=OwnerType)
+
+
+class OwnershipStatus(OrderedHierarchicalType):
+ class Meta:
+ verbose_name = _("Ownership status")
+ verbose_name_plural = _("Ownership status")
+ ordering = (
+ "order",
+ "parent__label",
+ "label",
+ )
+ ADMIN_SECTION = _("Finds")
+
+
+post_save.connect(post_save_cache, sender=OwnershipStatus)
+post_delete.connect(post_save_cache, sender=OwnershipStatus)
+
+
class OriginalReproduction(OrderedType):
class Meta:
verbose_name = _("Original/reproduction type")
@@ -1677,6 +1710,14 @@ class Find(
pgettext_lazy("key for text search", "appraisal-date"),
"appraisal_date",
),
+ "owner": SearchAltName(
+ pgettext_lazy("key for text search", "owner"),
+ "owner__label__iexact",
+ ),
+ "ownership_status": SearchAltName(
+ pgettext_lazy("key for text search", "ownership"),
+ "ownership_status__label__iexact",
+ ),
"cultural_attributions": SearchAltName(
pgettext_lazy("key for text search", "cultural-attribution"),
"cultural_attributions__label__iexact",
@@ -1777,10 +1818,10 @@ class Find(
pgettext_lazy("key for text search", "museum-marking-type"),
"museum_marking_type__label__iexact"
),
- "museum_collection": SearchAltName(
- pgettext_lazy("key for text search", "museum-collection"),
- "museum_collection__label__iexact",
- related_name="museum_collection"
+ "museum_collections": SearchAltName(
+ pgettext_lazy("key for text search", "museum-collections"),
+ "museum_collections__label__iexact",
+ related_name="museum_collections"
),
"museum_former_collections": SearchAltName(
pgettext_lazy("key for text search", "museum-former-collection"),
@@ -1884,7 +1925,7 @@ class Find(
SearchVectorConfig("museum_entry_mode_comment"),
SearchVectorConfig("museum_entry_date_comment", "local"),
SearchVectorConfig("museum_donors__denomination"),
- SearchVectorConfig("museum_collection__label"),
+ SearchVectorConfig("museum_collections__label"),
SearchVectorConfig("museum_former_collections__denomination"),
SearchVectorConfig("museum_inventory_transcript", "local"),
]
@@ -2243,11 +2284,13 @@ class Find(
)
check_date = models.DateField(_("Check date"), default=datetime.date.today)
estimated_value = models.FloatField(_("Estimated value"), blank=True, null=True)
- collection = models.ForeignKey(
- "archaeological_warehouse.Warehouse", blank=True, null=True, on_delete=models.SET_NULL,
- related_name="finds",
- verbose_name=_("Collection"),
- help_text=_("Do not use - need evolutions"),
+ ownership_status = models.ForeignKey(
+ OwnershipStatus, blank=True, null=True, on_delete=models.SET_NULL,
+ verbose_name=_("Ownership status"),
+ )
+ owner = models.ForeignKey(
+ OwnerType, blank=True, null=True, on_delete=models.SET_NULL,
+ verbose_name=_("Owner"),
)
# museum module
museum_owner_institution = models.ForeignKey(
@@ -2290,10 +2333,10 @@ class Find(
blank=True,
related_name="finds",
)
- museum_collection = models.ForeignKey(
- MuseumCollection, blank=True, null=True, on_delete=models.SET_NULL,
- related_name='current_collection_of',
- verbose_name=_("Collection"),
+ museum_collections = models.ManyToManyField(
+ MuseumCollection,
+ blank=True,
+ verbose_name=_("Collections"),
)
museum_former_collections = models.ManyToManyField(
BiographicalNote, blank=True,
@@ -2463,6 +2506,10 @@ class Find(
return False
@property
+ def has_ownership_section(self):
+ return self.owner or self.ownership_status
+
+ @property
def museum_entry_date_label(self):
from django.utils.formats import date_format
if not self.museum_entry_date: