summaryrefslogtreecommitdiff
path: root/archaeological_finds/models_finds.py
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2026-04-24 18:10:29 +0200
committerÉtienne Loks <etienne.loks@iggdrasil.net>2026-04-26 17:43:38 +0200
commita20e6f427edfaf3ae8b8f020957134fa4a2d577d (patch)
treec7784b19b02793147b11b4236853456293c1b9df /archaeological_finds/models_finds.py
parentc9db6e5bdb9182cd2d38c1daf1096350cf13a4a7 (diff)
downloadIshtar-a20e6f427edfaf3ae8b8f020957134fa4a2d577d.tar.bz2
Ishtar-a20e6f427edfaf3ae8b8f020957134fa4a2d577d.zip
✨ finds - workshop, movement, style fields: model, admin, forms, views, sheet (refs #6725)
Diffstat (limited to 'archaeological_finds/models_finds.py')
-rw-r--r--archaeological_finds/models_finds.py30
1 files changed, 30 insertions, 0 deletions
diff --git a/archaeological_finds/models_finds.py b/archaeological_finds/models_finds.py
index f7cd67968..9db0dae2a 100644
--- a/archaeological_finds/models_finds.py
+++ b/archaeological_finds/models_finds.py
@@ -141,6 +141,21 @@ post_save.connect(post_save_cache, sender=IconographicPatternType)
post_delete.connect(post_save_cache, sender=IconographicPatternType)
+class WorkshopMovementStyleType(OrderedHierarchicalType):
+ class Meta:
+ verbose_name = _("Workshop, movement, style type")
+ verbose_name_plural = _("Workshop, movement, style types")
+ ordering = (
+ "order",
+ "label",
+ )
+ ADMIN_SECTION = _("Finds")
+
+
+post_save.connect(post_save_cache, sender=WorkshopMovementStyleType)
+post_delete.connect(post_save_cache, sender=WorkshopMovementStyleType)
+
+
class ListedBuildingProtectionNature(OrderedHierarchicalType):
class Meta:
verbose_name = _("Listed building protection nature")
@@ -1379,6 +1394,7 @@ class Find(
("material_types__label", _("Material type")),
("object_types__label", _("Object type")),
("iconographic_patterns__label", _("Iconographic patterns")),
+ ("workshop_movement_styles__label", _("Workshop, movement, style")),
("recommended_treatments__label", _("Recommended treatments")),
("conservatory_states__label", _("Conservatory states")),
("integrities__label", _("Integrity")),
@@ -1576,6 +1592,11 @@ class Find(
pgettext_lazy("key for text search", "iconography-notes"),
"iconography_notes__iexact",
),
+ "workshop_movement_styles": SearchAltName(
+ pgettext_lazy("key for text search", "workshop-movement-style"),
+ "workshop_movement_styles__label__iexact",
+ related_name="workshop_movement_styles",
+ ),
"actors": SearchAltName(
pgettext_lazy("key for text search", "actors"),
"actors__cached_label__iexact"
@@ -2071,6 +2092,7 @@ class Find(
SearchVectorConfig("integrities__label", "raw"),
SearchVectorConfig("material_types__label", "local"),
SearchVectorConfig("iconographic_patterns__label", "local"),
+ SearchVectorConfig("workshop_movement_styles__label", "local"),
SearchVectorConfig("object_types__label", "raw"),
SearchVectorConfig("remarkabilities__label", "raw"),
SearchVectorConfig("technical_processes__label", "raw"),
@@ -2174,6 +2196,7 @@ class Find(
HISTORICAL_M2M = [
"material_types",
"iconographic_patterns",
+ "workshop_movement_styles",
"technical_processes",
"periods",
"datings",
@@ -2203,6 +2226,7 @@ class Find(
"functional_areas",
"material_types",
"iconographic_patterns",
+ "workshop_movement_styles",
"integrities",
"recommended_treatments",
"museum_former_collections",
@@ -2279,6 +2303,12 @@ class Find(
)
iconography_notes = models.TextField(_("Notes on iconography"), blank=True,
default="")
+ workshop_movement_styles = models.ManyToManyField(
+ WorkshopMovementStyleType,
+ verbose_name=_("Workshop, movement, style"),
+ related_name="finds",
+ blank=True,
+ )
manufacturing_place = models.TextField(
_("Manufacturing place"), blank=True, default=""
)