summaryrefslogtreecommitdiff
path: root/archaeological_finds/forms.py
diff options
context:
space:
mode:
Diffstat (limited to 'archaeological_finds/forms.py')
-rw-r--r--archaeological_finds/forms.py191
1 files changed, 178 insertions, 13 deletions
diff --git a/archaeological_finds/forms.py b/archaeological_finds/forms.py
index 381541614..27c306e30 100644
--- a/archaeological_finds/forms.py
+++ b/archaeological_finds/forms.py
@@ -94,17 +94,16 @@ from ishtar_common.forms_common import get_town_field
from archaeological_context_records.forms import PeriodSelect
from ishtar_common.models import (
- valid_id,
- valid_ids,
- get_current_profile,
- SpatialReferenceSystem,
Area,
- OperationType,
+ get_current_profile,
IshtarUser,
+ OperationType,
+ Organization,
Person,
person_type_pks_lazy,
+ valid_id,
+ valid_ids,
)
-from ishtar_common.utils import convert_coordinates_to_point
__all__ = [
"TreatmentSelect",
@@ -230,16 +229,46 @@ class BasicFindForm(CustomForm, ManageOldType):
"material_type_quality": models.MaterialTypeQualityType,
"object_type_quality": models.ObjectTypeQualityType,
"checked_type": models.CheckedType,
+ "museum_collection_entry_mode": models.CollectionEntryModeType,
+ "museum_inventory_marking_presence": models.InventoryMarkingPresence,
+ "museum_marking_type": models.MarkingType,
+ "museum_collection": models.MuseumCollection,
+ "museum_inventory_conformity": models.InventoryConformity,
+ "museum_original_repro": models.OriginalReproduction,
#'collection': Warehouse,
}
field_order = [
+ "museum_id_prefix",
+ "museum_id",
+ "museum_id_suffix",
"label",
"denomination",
+ "museum_id_comment",
"previous_id",
- "museum_id",
"laboratory_id",
"seal_number",
"mark",
+ "museum_inventory_marking_presence",
+ "museum_marking_type",
+ "museum_marking_comment",
+ "museum_owner_institution",
+ "museum_custodian_institution",
+ "museum_depositor_inventory_number",
+ "museum_collection_entry_mode",
+ "museum_entry_mode_comment",
+ "museum_entry_date",
+ "museum_entry_date_end",
+ "museum_entry_date_comment",
+ "museum_donor",
+ "museum_collection",
+ "museum_former_collection",
+ "museum_inventory_entry_year",
+ "museum_inventory_conformity",
+ "museum_non_conformity_comment",
+ "museum_inventory_transcript",
+ "museum_original_repro",
+ "museum_allocation_date",
+ "museum_purchase_price",
"description",
"public_description",
"is_complete",
@@ -276,26 +305,110 @@ class BasicFindForm(CustomForm, ManageOldType):
"checked_type",
"check_date",
]
+ PROFILE_FILTER = {
+ "museum": [
+ "museum_id_prefix",
+ "museum_id",
+ "museum_id_suffix",
+ "museum_id_comment",
+ "museum_owner_institution",
+ "museum_custodian_institution",
+ "museum_depositor_inventory_number",
+ "museum_collection_entry_mode",
+ "museum_entry_mode_comment",
+ "museum_entry_date",
+ "museum_entry_date_end",
+ "museum_entry_date_comment",
+ "museum_donor",
+ "museum_inventory_marking_presence",
+ "museum_marking_type",
+ "museum_marking_comment",
+ "museum_collection",
+ "museum_former_collection",
+ "museum_inventory_entry_year",
+ "museum_inventory_conformity",
+ "museum_non_conformity_comment",
+ "museum_inventory_transcript",
+ "museum_original_repro",
+ "museum_allocation_date",
+ "museum_purchase_price",
+ ],
+ }
HEADERS = {}
- HEADERS["label"] = FormHeader(_("Identification"))
-
+ HEADERS["museum_id_prefix"] = FormHeader(_("Museum identification"))
label = forms.CharField(
label=_("Free ID"), validators=[validators.MaxLengthValidator(60)]
)
+ museum_id_prefix = forms.CharField(label=_("Museum ID prefix"), required=False)
+ museum_id = forms.CharField(label=_("Museum ID"), required=False)
+ museum_id_suffix = forms.CharField(label=_("Museum ID suffix"), required=False)
+ museum_id_comment = forms.CharField(label=_("Comment on museum ID"), widget=forms.Textarea, required=False)
+ HEADERS["label"] = FormHeader(_("Identification"))
denomination = forms.CharField(label=_("Denomination"), required=False)
previous_id = forms.CharField(label=_("Previous ID"), required=False)
- museum_id = forms.CharField(label=_("Museum ID"), required=False)
laboratory_id = forms.CharField(label=_("Laboratory ID"), required=False)
seal_number = forms.CharField(label=_("Seal number"), required=False)
mark = forms.CharField(label=_("Mark"), required=False)
+ museum_inventory_marking_presence = widgets.Select2MultipleField(
+ label=_("Presence of inventory marking"), required=False
+ )
+ museum_marking_type = widgets.Select2MultipleField(
+ label=_("Type of marking"), required=False
+ )
+ museum_marking_comment = forms.CharField(
+ label=_("Comment on marking"), widget=forms.Textarea, required=False
+ )
# collection = forms.IntegerField(
# label=_("Collection (warehouse)"),
# widget=widgets.JQueryAutoComplete(
# reverse_lazy('autocomplete-warehouse'),
# associated_model=Warehouse, new=True),
# validators=[valid_id(Warehouse)], required=False)
+ HEADERS["museum_owner_institution"] = FormHeader(_("Museum"))
+ museum_owner_institution = widgets.ModelJQueryAutocompleteField(
+ model=Organization, label=_("Owner institution"), new=True, required=False
+ )
+ museum_custodian_institution = widgets.ModelJQueryAutocompleteField(
+ model=Organization, label=_("Custodian institution"), new=True, required=False
+ )
+ museum_depositor_inventory_number = forms.CharField(label=_("Depositor inventory number"), required=False)
+ museum_collection_entry_mode = forms.ChoiceField(
+ label=_("Collections entry mode"), required=False, choices=[]
+ )
+ museum_entry_mode_comment = forms.CharField(label=_("Comment on museum entry mode"), widget=forms.Textarea, required=False)
+ museum_entry_date = forms.DateField(
+ label=_("Museum entry date (exact or start)"), widget=DatePicker, required=False
+ )
+ museum_entry_date_end = forms.DateField(
+ label=_("Museum entry date (end)"), widget=DatePicker, required=False
+ )
+ museum_entry_date_comment = forms.CharField(label=_("Comment on museum entry date"), required=False)
+ #museum_donor =
+ museum_collection = forms.ChoiceField(
+ label=_("Collection"), required=False, choices=[]
+ )
+ # museum_former_collection =
+ museum_inventory_entry_year = forms.IntegerField(
+ label=_("Inventory entry year"), required=False, min_value=0, max_value=2100
+ )
+ museum_inventory_conformity = forms.ChoiceField(
+ label=_("Conformity with inventory"), required=False, choices=[]
+ )
+ museum_non_conformity_comment = forms.CharField(
+ label=_("Comment of non-conformity"), widget=forms.Textarea, required=False
+ )
+ museum_original_repro = forms.ChoiceField(
+ label=_("Original/reproduction"), required=False, choices=[]
+ )
+ museum_allocation_date = forms.DateField(
+ label=_("Date of museum allocation"), widget=DatePicker, required=False
+ )
+ museum_purchase_price = forms.CharField(label=_("Purchase price"), required=False)
- HEADERS["description"] = FormHeader(_("Description"))
+ HEADERS["museum_inventory_transcript"] = FormHeader(_("Description"))
+ museum_inventory_transcript = forms.CharField(
+ label=_("Inventory transcript"), widget=forms.Textarea, required=False
+ )
description = forms.CharField(
label=_("Description"), widget=forms.Textarea, required=False
)
@@ -431,6 +544,12 @@ class BasicFindForm(CustomForm, ManageOldType):
FieldType("technical_processe", models.TechnicalProcessType, is_multiple=True),
FieldType("communicabilitie", models.CommunicabilityType, is_multiple=True),
FieldType("checked_type", models.CheckedType, is_multiple=True),
+ FieldType("museum_collection_entry_mode", models.CollectionEntryModeType),
+ FieldType("museum_inventory_marking_presence", models.InventoryMarkingPresence, is_multiple=True),
+ FieldType("museum_marking_type", models.MarkingType, is_multiple=True),
+ FieldType("museum_collection", models.MuseumCollection),
+ FieldType("museum_inventory_conformity", models.InventoryConformity),
+ FieldType("museum_original_repro", models.OriginalReproduction),
]
def __init__(self, *args, **kwargs):
@@ -439,6 +558,17 @@ class BasicFindForm(CustomForm, ManageOldType):
if not context_record or not context_record.operation.operation_type.judiciary:
self._remove_fields(("seal_number",))
+ def get_headers(self):
+ if self._headers:
+ return self._headers
+ self._headers = self.HEADERS.copy()
+ profile = get_current_profile()
+ if not profile.museum:
+ if "museum_inventory_transcript" in self._headers:
+ self._headers.pop("museum_inventory_transcript")
+ self._headers["description"] = FormHeader(_("Description"))
+ return self._headers
+
def clean(self):
clutter_long_side = self.cleaned_data.get("clutter_long_side", None)
clutter_short_side = self.cleaned_data.get("clutter_short_side", None)
@@ -467,14 +597,38 @@ class FindForm(BasicFindForm):
}
)
field_order = [
+ "museum_id_prefix",
+ "museum_id",
+ "museum_id_suffix",
+ "museum_id_comment",
"label",
"denomination",
"previous_id",
"get_first_base_find__excavation_id",
- "museum_id",
"laboratory_id",
"seal_number",
"mark",
+ "museum_inventory_marking_presence",
+ "museum_marking_type",
+ "museum_marking_comment",
+ "museum_owner_institution",
+ "museum_custodian_institution",
+ "museum_depositor_inventory_number",
+ "museum_collection_entry_mode",
+ "museum_entry_mode_comment",
+ "museum_entry_date",
+ "museum_entry_date_end",
+ "museum_entry_date_comment",
+ "museum_donor",
+ "museum_collection",
+ "museum_former_collection",
+ "museum_inventory_entry_year",
+ "museum_inventory_conformity",
+ "museum_non_conformity_comment",
+ "museum_original_repro",
+ "museum_allocation_date",
+ "museum_purchase_price",
+ "museum_inventory_transcript",
"description",
"public_description",
"get_first_base_find__discovery_date",
@@ -753,7 +907,9 @@ class QAFindFormMulti(QAForm):
"qa_label",
"qa_previous_id",
"qa_get_first_base_find__excavation_id",
+ "qa_museum_id_prefix",
"qa_museum_id",
+ "qa_museum_id_suffix",
"qa_laboratory_id",
"qa_seal_number",
"qa_mark",
@@ -777,7 +933,9 @@ class QAFindFormMulti(QAForm):
qa_get_first_base_find__excavation_id = forms.CharField(
label=_("Excavation ID"), required=False
)
+ qa_museum_id_prefix = forms.CharField(label=_("Museum ID prefix"), required=False)
qa_museum_id = forms.CharField(label=_("Museum inventory number"), required=False)
+ qa_museum_id_suffix = forms.CharField(label=_("Museum ID suffix"), required=False)
qa_laboratory_id = forms.CharField(label=_("Laboratory ID"), required=False)
qa_seal_number = forms.CharField(label=_("Seal number"), required=False)
qa_mark = forms.CharField(label=_("Mark"), required=False)
@@ -1294,6 +1452,12 @@ class FindSelect(GeoItemSelect, PeriodSelect):
),
),
]
+ PROFILE_FILTER = {
+ "museum": [
+ "museum_id",
+ "cache_complete_museum_id",
+ ],
+ }
search_vector = forms.CharField(
label=_("Full text search"),
@@ -1301,10 +1465,11 @@ class FindSelect(GeoItemSelect, PeriodSelect):
)
label = forms.CharField(label=_("Free ID"))
denomination = forms.CharField(label=_("Denomination"))
+ museum_id = forms.CharField(label=_("Museum ID"))
+ cache_complete_museum_id = forms.CharField(label=_("Complete museum ID"))
previous_id = forms.CharField(label=_("Previous ID"))
base_finds__excavation_id = forms.CharField(label=_("Excavation ID"))
seal_number = forms.CharField(label=_("Seal number"))
- museum_id = forms.CharField(label=_("Museum inventory number"))
laboratory_id = forms.CharField(label=_("Laboratory ID"))
mark = forms.CharField(label=_("Mark"))