diff options
Diffstat (limited to 'archaeological_finds/forms.py')
-rw-r--r-- | archaeological_finds/forms.py | 191 |
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")) |