summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2026-06-29 12:43:30 +0200
committerÉtienne Loks <etienne.loks@iggdrasil.net>2026-06-29 13:21:31 +0200
commit09b88b02d6d61c5b910a94e40e9df97020e50e29 (patch)
tree34872cc0fef35c4336953b17ab44b4f881d0c584
parent4e23793f646e619fa6dd9280359a62840c6f0b1b (diff)
downloadIshtar-09b88b02d6d61c5b910a94e40e9df97020e50e29.tar.bz2
Ishtar-09b88b02d6d61c5b910a94e40e9df97020e50e29.zip
✨ finds - forms: "recommendations" and "current storage conditions"
-rw-r--r--archaeological_finds/forms.py96
-rw-r--r--archaeological_finds/models_finds.py9
-rw-r--r--ishtar_common/views_item.py2
3 files changed, 81 insertions, 26 deletions
diff --git a/archaeological_finds/forms.py b/archaeological_finds/forms.py
index 83e3e330a..e57069da0 100644
--- a/archaeological_finds/forms.py
+++ b/archaeological_finds/forms.py
@@ -1052,6 +1052,8 @@ class QAFindFormMulti(MuseumForm, QAForm):
"qa_owner",
"qa_ownership_status",
"qa_period",
+ "qa_recommendations",
+ "qa_current_storage_conditions",
]
associated_models = {
"qa_material_types": models.MaterialType,
@@ -1081,6 +1083,8 @@ class QAFindFormMulti(MuseumForm, QAForm):
"qa_museum_former_collections": BiographicalNote,
"qa_owner": models.OwnerType,
"qa_ownership_status": models.OwnershipStatus,
+ "qa_recommendations": models.RecommendationType,
+ "qa_current_storage_conditions": models.CurrentStorageConditionType,
}
MULTI = True
@@ -1138,7 +1142,7 @@ class QAFindFormMulti(MuseumForm, QAForm):
"qa_description": FormHeader(_("Description")),
"qa_checked_type": FormHeader(_("Sheet")),
"qa_period": FormHeader(_("Datation")),
- "qa_conservatory_comment": FormHeader(_("Preservation")),
+ "qa_integrities": FormHeader(_("Preservation")),
"qa_museum_owner_institution": FormHeader(_("Museum")),
}
@@ -1252,6 +1256,10 @@ class QAFindFormMulti(MuseumForm, QAForm):
label=_("Object types"),
required=False,
)
+ qa_cultural_attributions = widgets.Select2MultipleField(
+ label=_("Cultural attribution"),
+ required=False
+ )
qa_functional_areas = widgets.Select2MultipleField(
label=_("Functional areas"),
required=False,
@@ -1266,47 +1274,55 @@ class QAFindFormMulti(MuseumForm, QAForm):
qa_communicabilities = widgets.Select2MultipleField(
label=_("Communicability"), required=False
)
- qa_alterations = widgets.Select2MultipleField(label=_("Alteration"), required=False)
- qa_alteration_causes = widgets.Select2MultipleField(
- label=_("Alteration cause"), required=False
- )
- qa_conservatory_states = widgets.Select2MultipleField(label=_("Conservatory states"), required=False)
- qa_treatment_emergency = forms.ChoiceField(
- label=_("Treatment emergency"), choices=[], required=False
- )
- qa_recommended_treatments = widgets.Select2MultipleField(
- label=_("Recommended treatments"),
- choices=[], required=False,
- )
- qa_integrities = widgets.Select2MultipleField(
- label=_("Integrity"), required=False
- )
- qa_remarkabilities = widgets.Select2MultipleField(
- label=_("Remarkability"), required=False
- )
qa_comment = forms.CharField(
label=_("Comment"), required=False, widget=forms.Textarea
)
- qa_checked_type = forms.ChoiceField(label=_("Check"), required=False)
- qa_check_date = DateField(label=_("Check date"), required=False)
qa_appraisal_date = DateField(label=_("Appraisal date"), required=False)
qa_insurance_value = forms.FloatField(label=_("Insurance value"), required=False)
qa_period = widgets.Select2MultipleField(
label=_("Chronological period"), choices=[], required=False
)
- qa_cultural_attributions = widgets.Select2MultipleField(
- label=_("Cultural attribution"),
- required=False
- )
qa_dating_comment = forms.CharField(
label=_("Comment on datings"), required=False, widget=forms.Textarea
)
+ qa_integrities = widgets.Select2MultipleField(
+ label=_("Integrity"), required=False
+ )
+ qa_remarkabilities = widgets.Select2MultipleField(
+ label=_("Remarkability"), required=False
+ )
+ qa_alterations = widgets.Select2MultipleField(label=_("Alteration"), required=False)
+ qa_alteration_causes = widgets.Select2MultipleField(
+ label=_("Alteration cause"), required=False
+ )
+ qa_conservatory_states = widgets.Select2MultipleField(label=_("Conservatory states"), required=False)
+ qa_treatment_emergency = forms.ChoiceField(
+ label=_("Treatment emergency"), choices=[], required=False
+ )
+ qa_recommended_treatments = widgets.Select2MultipleField(
+ label=_("Recommended treatments"),
+ choices=[], required=False,
+ )
+ qa_recommendations = forms.MultipleChoiceField(
+ label=_("Recommendations"),
+ choices=[],
+ widget=widgets.Select2Multiple,
+ required=False,
+ )
+ qa_current_storage_conditions = forms.MultipleChoiceField(
+ label=_("Current storage conditions"),
+ choices=[],
+ widget=widgets.Select2Multiple,
+ required=False,
+ )
qa_conservatory_comment = forms.CharField(
label=_("Comment on conservatory"), required=False, widget=forms.Textarea
)
+ qa_checked_type = forms.ChoiceField(label=_("Check"), required=False)
+ qa_check_date = DateField(label=_("Check date"), required=False)
TYPES = [
FieldType("qa_material_types", models.MaterialType, is_multiple=True),
@@ -1332,6 +1348,8 @@ class QAFindFormMulti(MuseumForm, QAForm):
FieldType("qa_museum_original_repro", models.OriginalReproduction),
FieldType("qa_ownership_status", models.OwnershipStatus),
FieldType("qa_owner", models.OwnerType),
+ FieldType("qa_recommendations", models.RecommendationType),
+ FieldType("qa_current_storage_conditions", models.CurrentStorageConditionType),
]
def __init__(self, *args, **kwargs):
@@ -1620,6 +1638,8 @@ class PreservationForm(CustomForm, ManageOldType):
"integritie",
"remarkabilitie",
"conservatory_state",
+ "recommendation",
+ "current_storage_condition",
]
associated_models = {
"alteration": models.AlterationType,
@@ -1629,6 +1649,8 @@ class PreservationForm(CustomForm, ManageOldType):
"recommended_treatment": models.RecommendedTreatmentType,
"remarkabilitie": models.RemarkabilityType,
"integritie": models.IntegrityType,
+ "recommendation": models.RecommendationType,
+ "current_storage_condition": models.CurrentStorageConditionType,
}
integritie = forms.MultipleChoiceField(
label=_("Integrity"),
@@ -1684,12 +1706,26 @@ class PreservationForm(CustomForm, ManageOldType):
estimated_value = FloatField(label=_("Estimated value"), required=False)
insurance_value = FloatField(label=_("Insurance value"), required=False)
appraisal_date = DateField(label=_("Appraisal date"), required=False)
+ recommendation = forms.MultipleChoiceField(
+ label=_("Recommendations"),
+ choices=[],
+ widget=widgets.Select2Multiple,
+ required=False,
+ )
+ current_storage_condition = forms.MultipleChoiceField(
+ label=_("Current storage conditions"),
+ choices=[],
+ widget=widgets.Select2Multiple,
+ required=False,
+ )
conservatory_comment = forms.CharField(
label=_("Conservatory comment"), required=False, widget=forms.Textarea
)
TYPES = [
FieldType("treatment_emergency", models.TreatmentEmergencyType),
+ FieldType("recommendation", models.RecommendationType, True),
+ FieldType("current_storage_condition", models.CurrentStorageConditionType, True),
FieldType("recommended_treatment", models.RecommendedTreatmentType, True),
FieldType("alteration", models.AlterationType, True),
FieldType("alteration_cause", models.AlterationCauseType, True),
@@ -1699,7 +1735,7 @@ class PreservationForm(CustomForm, ManageOldType):
]
def __init__(self, *args, **kwargs):
- super(PreservationForm, self).__init__(*args, **kwargs)
+ super().__init__(*args, **kwargs)
if "insurance_value" in self.fields:
self.fields["insurance_value"].label = "{} ({})".format(
str(self.fields["insurance_value"].label),
@@ -2094,6 +2130,12 @@ class FindSelect(MuseumForm, GeoItemSelect, DatingSelect):
estimated_value = FloatField(label=_("Estimated value"))
insurance_value = FloatField(label=_("Insurance value"))
appraisal_date = DateField(label=_("Appraisal date"))
+ recommendations = forms.ChoiceField(label=_("Recommendations"),
+ choices=[])
+ current_storage_conditions = forms.ChoiceField(
+ label=_("Current storage conditions"),
+ choices=[],
+ )
loan = forms.NullBooleanField(label=_("Loan?"))
treatments_file_end_date = DateField(label=_("Treatment file end date"))
@@ -2205,6 +2247,8 @@ class FindSelect(MuseumForm, GeoItemSelect, DatingSelect):
FieldType("alteration_causes", models.AlterationCauseType),
FieldType("treatment_emergency", models.TreatmentEmergencyType),
FieldType("cultural_attributions", CulturalAttributionType),
+ FieldType("recommendations", models.RecommendationType),
+ FieldType("current_storage_conditions", models.CurrentStorageConditionType),
FieldType(
"base_finds__context_record__archaeological_site__remains",
RemainType
diff --git a/archaeological_finds/models_finds.py b/archaeological_finds/models_finds.py
index b1cd40539..ab6427d20 100644
--- a/archaeological_finds/models_finds.py
+++ b/archaeological_finds/models_finds.py
@@ -1670,6 +1670,15 @@ class Find(
pgettext_lazy("key for text search", "remarkability"),
"remarkabilities__label__iexact",
),
+ "recommendations": SearchAltName(
+ pgettext_lazy("key for text search", "recommendation"),
+ "recommendations__label__iexact",
+ ),
+ "current_storage_conditions": SearchAltName(
+ pgettext_lazy("key for text search",
+ "current-storage-conditions"),
+ "current_storage_conditions__label__iexact",
+ ),
"description": SearchAltName(
pgettext_lazy("key for text search", "description"), "description__iexact"
),
diff --git a/ishtar_common/views_item.py b/ishtar_common/views_item.py
index f5ab7bae4..f924e9270 100644
--- a/ishtar_common/views_item.py
+++ b/ishtar_common/views_item.py
@@ -122,6 +122,8 @@ LIST_FIELDS = { # key: hierarchic depth
"excavation_technics": HIERARCHIC_LEVELS,
"treatment_types": HIERARCHIC_LEVELS,
"listed_building_protection_nature": HIERARCHIC_LEVELS,
+ "current_storage_conditions": HIERARCHIC_LEVELS,
+ "recommendations": HIERARCHIC_LEVELS,
"discovery_method": 0,
"discovery_status": 0,
"current_status": 0,