summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2024-02-19 18:23:24 +0100
committerÉtienne Loks <etienne.loks@iggdrasil.net>2024-04-16 16:42:32 +0200
commite66851fdd4f652a4050fa896436e2114b6929d25 (patch)
tree07c1d63a6579610934e40d772000c5312359ab16
parent9268bb26e86b9b44ce6520bb1a9120796cfc32d6 (diff)
downloadIshtar-e66851fdd4f652a4050fa896436e2114b6929d25.tar.bz2
Ishtar-e66851fdd4f652a4050fa896436e2114b6929d25.zip
✨ Museum add search fields
-rw-r--r--archaeological_finds/forms.py127
-rw-r--r--archaeological_finds/models_finds.py102
-rw-r--r--ishtar_common/views_item.py4
3 files changed, 231 insertions, 2 deletions
diff --git a/archaeological_finds/forms.py b/archaeological_finds/forms.py
index b201cf888..9aba4c389 100644
--- a/archaeological_finds/forms.py
+++ b/archaeological_finds/forms.py
@@ -1473,13 +1473,66 @@ class FindSelect(GeoItemSelect, PeriodSelect):
"treatment_emergency",
),
),
+ (
+ _("Museum"),
+ (
+ "museum_id_comment",
+ "museum_owner_institution",
+ "museum_custodian_institution",
+ "museum_depositor_inventory_number",
+ "museum_collection_entry_mode",
+ "museum_entry_mode_comment",
+ "museum_entry_date_before",
+ "museum_entry_date_after",
+ "museum_entry_date_end_before",
+ "museum_entry_date_end_after",
+ "museum_entry_date_comment",
+ "museum_donor",
+ "museum_inventory_marking_presence",
+ "museum_marking_type",
+ "museum_collection",
+ "museum_former_collections",
+ "museum_inventory_entry_year_before",
+ "museum_inventory_entry_year_after",
+ "museum_inventory_conformity",
+ "museum_non_conformity_comment",
+ "museum_inventory_transcript",
+ "museum_original_repro",
+ "museum_allocation_date_before",
+ "museum_allocation_date_after",
+ "museum_purchase_price",
+ ),
+ ),
]
PROFILE_FILTER = {
"museum": [
"museum_id",
"cache_complete_museum_id",
+ "museum_id_comment",
+ "museum_owner_institution",
+ "museum_custodian_institution",
+ "museum_depositor_inventory_number",
+ "museum_collection_entry_mode",
+ "museum_entry_mode_comment",
+ "museum_entry_date_before",
+ "museum_entry_date_after",
+ "museum_entry_date_end_before",
+ "museum_entry_date_end_after",
+ "museum_entry_date_comment",
+ "museum_donor",
+ "museum_inventory_marking_presence",
+ "museum_marking_type",
+ "museum_collection",
"museum_former_collections",
- "museum_collection_entry_mode"
+ "museum_inventory_entry_year_before",
+ "museum_inventory_entry_year_after",
+ "museum_inventory_conformity",
+ "museum_non_conformity_comment",
+ "museum_inventory_transcript",
+ "museum_original_repro",
+ "museum_allocation_date_before",
+ "museum_allocation_date_after",
+ "museum_purchase_price",
],
}
@@ -1767,8 +1820,73 @@ class FindSelect(GeoItemSelect, PeriodSelect):
label=_("Treatment end date before"), widget=DatePicker
)
# museum
- museum_former_collections = forms.CharField(label=_("Museum - Former collection"))
+ museum_id_comment = forms.CharField(label=_("Museum - Comment on museum ID"))
+ museum_owner_institution = forms.IntegerField(
+ label=_("Museum - Owner institution"),
+ widget=widgets.JQueryAutoComplete(
+ reverse_lazy('autocomplete-organization'),
+ associated_model=Organization),
+ validators=[valid_id(Organization)])
+ museum_custodian_institution = forms.IntegerField(
+ label=_("Museum - Custodian institution"),
+ widget=widgets.JQueryAutoComplete(
+ reverse_lazy('autocomplete-organization'),
+ associated_model=Organization),
+ validators=[valid_id(Organization)])
+ museum_depositor_inventory_number = forms.CharField(label=_("Museum - Depositor inventory number"))
museum_collection_entry_mode = forms.ChoiceField(label=_("Museum - Collections entry mode"), choices=[])
+ museum_entry_mode_comment = forms.CharField(label=_("Museum - Comment on museum entry mode"))
+ museum_entry_date_before = forms.DateField(
+ label=_("Museum - Entry date (exact or start) - before"), widget=DatePicker
+ )
+ museum_entry_date_after = forms.DateField(
+ label=_("Museum - Entry date (exact or start) - after"), widget=DatePicker
+ )
+ museum_entry_date_end_before = forms.DateField(
+ label=_("Museum - Entry date end - before"), widget=DatePicker
+ )
+ museum_entry_date_end_after = forms.DateField(
+ label=_("Museum - Entry date end - after"), widget=DatePicker
+ )
+ museum_entry_date_comment = forms.CharField(label=_("Museum - Comment on museum entry date"))
+ museum_donor = forms.IntegerField(
+ label=_("Museum - Donor, testator or vendor"),
+ widget=widgets.JQueryAutoComplete(
+ reverse_lazy('autocomplete-biographicalnote'),
+ associated_model=BiographicalNote),
+ validators=[valid_id(BiographicalNote)])
+ museum_inventory_marking_presence = forms.ChoiceField(
+ label=_("Museum - Presence of inventory marking"), choices=[]
+ )
+ museum_marking_type = forms.ChoiceField(
+ label=_("Museum - Type of marking"), choices=[]
+ )
+ museum_collection = forms.ChoiceField(
+ label=_("Museum - Collection"), choices=[]
+ )
+ museum_former_collections = forms.IntegerField(
+ label=_("Museum - Former collection"),
+ widget=widgets.JQueryAutoComplete(
+ reverse_lazy('autocomplete-biographicalnote'),
+ associated_model=BiographicalNote),
+ validators=[valid_id(BiographicalNote)])
+ museum_inventory_entry_year_before = forms.IntegerField(label=_("Museum - Inventory entry year - before"))
+ museum_inventory_entry_year_after = forms.IntegerField(label=_("Museum - Inventory entry year - after"))
+ museum_inventory_conformity = forms.ChoiceField(
+ label=_("Museum - Conformity with inventory"), choices=[]
+ )
+ museum_non_conformity_comment = forms.CharField(label=_("Museum - Comment of non-conformity"))
+ museum_inventory_transcript = forms.CharField(label=_("Museum - Inventory transcript"))
+ museum_original_repro = forms.ChoiceField(
+ label=_("Museum - Original/reproduction"), choices=[]
+ )
+ museum_allocation_date_before = forms.DateField(
+ label=_("Museum - Date of allocation - before"), widget=DatePicker
+ )
+ museum_allocation_date_after = forms.DateField(
+ label=_("Museum - Date of allocation - after"), widget=DatePicker
+ )
+ museum_purchase_price = forms.CharField(label=_("Museum - Purchase price"))
TYPES = PeriodSelect.TYPES + [
FieldType("conservatory_state", models.ConservatoryState),
@@ -1797,6 +1915,11 @@ class FindSelect(GeoItemSelect, PeriodSelect):
RemainType
),
FieldType("museum_collection_entry_mode", models.CollectionEntryModeType),
+ FieldType("museum_inventory_marking_presence", models.InventoryMarkingPresence),
+ FieldType("museum_marking_type", models.MarkingType),
+ FieldType("museum_collection", models.MuseumCollection),
+ FieldType("museum_inventory_conformity", models.InventoryConformity),
+ FieldType("museum_original_repro", models.OriginalReproduction),
] + GeoItemSelect.TYPES
SITE_KEYS = {
"archaeological_sites": "attached-to-operation",
diff --git a/archaeological_finds/models_finds.py b/archaeological_finds/models_finds.py
index 7dfab7595..757f38899 100644
--- a/archaeological_finds/models_finds.py
+++ b/archaeological_finds/models_finds.py
@@ -1221,6 +1221,12 @@ class Find(
"check_date__gte",
"appraisal_date__lte",
"appraisal_date__gte",
+ "museum_entry_date__lte",
+ "museum_entry_date__gte",
+ "museum_entry_date_end__lte",
+ "museum_entry_date_end__gte",
+ "museum_allocation_date__lte",
+ "museum_allocation_date__gte",
]
BASE_REQUEST = {"downstream_treatment__isnull": True}
EXTRA_REQUEST_KEYS = {
@@ -1654,10 +1660,106 @@ class Find(
pgettext_lazy("key for text search", "site-remain"),
"base_finds__context_record__archaeological_site__remains__label__iexact"
),
+ "museum_id_comment": SearchAltName(
+ pgettext_lazy("key for text search", "museum-id-comment"),
+ "museum_id_comment__iexact"
+ ),
+ "museum_owner_institution": SearchAltName(
+ pgettext_lazy("key for text search", "museum-owner-institution"),
+ "museum_owner_institution__name__iexact"
+ ),
+ "museum_custodian_institution": SearchAltName(
+ pgettext_lazy("key for text search", "museum-custodian-institution"),
+ "museum_custodian_institution__name__iexact"
+ ),
+ "museum_depositor_inventory_number": SearchAltName(
+ pgettext_lazy("key for text search", "museum-depositor-inventory-number"),
+ "museum_depositor_inventory_number__iexact"
+ ),
+ "museum_collection_entry_mode": SearchAltName(
+ pgettext_lazy("key for text search", "museum-collection-entry-mode"),
+ "museum_collection_entry_mode__label__iexact"
+ ),
+ "museum_entry_mode_comment": SearchAltName(
+ pgettext_lazy("key for text search", "museum-entry-mode-comment"),
+ "museum_entry_mode_comment__iexact"
+ ),
+ "museum_entry_date_before": SearchAltName(
+ pgettext_lazy("key for text search", "museum-entry-date-before"),
+ "museum_entry_date__lte"
+ ),
+ "museum_entry_date_after": SearchAltName(
+ pgettext_lazy("key for text search", "museum-entry-date-after"),
+ "museum_entry_date__gte"
+ ),
+ "museum_entry_date_end_before": SearchAltName(
+ pgettext_lazy("key for text search", "museum-entry-date-end-before"),
+ "museum_entry_date_end__lte"
+ ),
+ "museum_entry_date_end_after": SearchAltName(
+ pgettext_lazy("key for text search", "museum-entry-date-end-after"),
+ "museum_entry_date_end__gte"
+ ),
+ "museum_entry_date_comment": SearchAltName(
+ pgettext_lazy("key for text search", "museum-entry-date-comment"),
+ "museum_entry_date_comment__iexact"
+ ),
+ "museum_donor": SearchAltName(
+ pgettext_lazy("key for text search", "museum-donor"),
+ "museum_donor__denomination__iexact"
+ ),
+ "museum_inventory_marking_presence": SearchAltName(
+ pgettext_lazy("key for text search", "museum-inventory-marking-presence"),
+ "museum_inventory_marking_presence__label__iexact"
+ ),
+ "museum_marking_type": SearchAltName(
+ 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"
+ ),
"museum_former_collections": SearchAltName(
pgettext_lazy("key for text search", "museum-former-collection"),
"museum_former_collections__denomination__iexact"
),
+ "museum_inventory_entry_year_before": SearchAltName(
+ pgettext_lazy("key for text search", "museum-inventory-entry-year-before"),
+ "museum_inventory_entry_year__lte"
+ ),
+ "museum_inventory_entry_year_after": SearchAltName(
+ pgettext_lazy("key for text search", "museum-inventory-entry-year-after"),
+ "museum_inventory_entry_year__gte"
+ ),
+ "museum_inventory_conformity": SearchAltName(
+ pgettext_lazy("key for text search", "museum-inventory-conformity"),
+ "museum_inventory_conformity__label__iexact"
+ ),
+ "museum_non_conformity_comment": SearchAltName(
+ pgettext_lazy("key for text search", "museum-non-conformity-comment"),
+ "museum_non_conformity_comment__iexact"
+ ),
+ "museum_inventory_transcript": SearchAltName(
+ pgettext_lazy("key for text search", "museum-inventory-transcript"),
+ "museum_inventory_transcript__iexact"
+ ),
+ "museum_original_repro": SearchAltName(
+ pgettext_lazy("key for text search", "museum-original-repro"),
+ "museum_original_repro__label__iexact"
+ ),
+ "museum_allocation_date_before": SearchAltName(
+ pgettext_lazy("key for text search", "museum-allocation-date-before"),
+ "museum_allocation_date__lte"
+ ),
+ "museum_allocation_date_after": SearchAltName(
+ pgettext_lazy("key for text search", "museum-allocation-date-after"),
+ "museum_allocation_date__gte"
+ ),
+ "museum_purchase_price": SearchAltName(
+ pgettext_lazy("key for text search", "museum-purchase-price"),
+ "museum_purchase_price__iexact"
+ ),
}
ALT_NAMES.update(BaseHistorizedItem.ALT_NAMES)
ALT_NAMES.update(DocumentItem.ALT_NAMES)
diff --git a/ishtar_common/views_item.py b/ishtar_common/views_item.py
index ed2fb07ea..070a7ce53 100644
--- a/ishtar_common/views_item.py
+++ b/ishtar_common/views_item.py
@@ -567,6 +567,10 @@ LIST_FIELDS = { # key: hierarchic depth
"periods": HIERARCHIC_LEVELS,
"source_type": HIERARCHIC_LEVELS,
"unit": HIERARCHIC_LEVELS,
+ "museum_collection_entry_mode": HIERARCHIC_LEVELS,
+ "museum_inventory_marking_presence": 0,
+ "museum_marking_type": 0,
+ "museum_collection": 0,
"batch": 0,
"preservation_to_considers": 0,
"integrities": 0,