summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2026-04-16 17:31:27 +0200
committerÉtienne Loks <etienne.loks@iggdrasil.net>2026-04-16 17:36:29 +0200
commit167b735b378c0e4fe6dc52f951b97994ba21d945 (patch)
treee8a581f5edd24a45128cee9ae4962d4115125a7d
parent175fadb6eab2abdbbf2d233173111de19efb7745 (diff)
downloadIshtar-167b735b378c0e4fe6dc52f951b97994ba21d945.tar.bz2
Ishtar-167b735b378c0e4fe6dc52f951b97994ba21d945.zip
✨ finds - forms: many new fields
-rw-r--r--archaeological_finds/forms.py66
-rw-r--r--archaeological_finds/models_finds.py2
2 files changed, 63 insertions, 5 deletions
diff --git a/archaeological_finds/forms.py b/archaeological_finds/forms.py
index 51e8260ef..2832076e2 100644
--- a/archaeological_finds/forms.py
+++ b/archaeological_finds/forms.py
@@ -100,6 +100,7 @@ from archaeological_context_records.forms import DatingSelect
from ishtar_common.models import (
Area,
+ Author,
BiographicalNote,
get_current_profile,
IshtarUser,
@@ -107,6 +108,7 @@ from ishtar_common.models import (
Organization,
Person,
person_type_pks_lazy,
+ QualifiedBiographicalNote,
valid_id,
valid_ids,
)
@@ -236,6 +238,8 @@ class BasicFindForm(MuseumForm, CustomForm, ManageOldType):
form_admin_name = _("Simple find - 020 - General")
form_slug = "find-020-simplegeneral"
base_models = [
+ "actor",
+ "editor",
"object_type",
"period",
"material_type",
@@ -244,6 +248,7 @@ class BasicFindForm(MuseumForm, CustomForm, ManageOldType):
"functional_area",
"technical_area",
"technical_processe",
+ "iconographic_pattern",
"museum_former_collection",
"museum_donor",
"museum_inventory_marking_presence",
@@ -251,6 +256,8 @@ class BasicFindForm(MuseumForm, CustomForm, ManageOldType):
"museum_collection",
]
associated_models = {
+ "actor": QualifiedBiographicalNote,
+ "editor": Author,
"material_type": models.MaterialType,
"cultural_attribution": CulturalAttributionType,
"object_type": models.ObjectType,
@@ -262,6 +269,8 @@ class BasicFindForm(MuseumForm, CustomForm, ManageOldType):
"material_type_quality": models.MaterialTypeQualityType,
"object_type_quality": models.ObjectTypeQualityType,
"checked_type": models.CheckedType,
+ "iconographic_pattern": models.IconographicPatternType,
+ "listed_building_protection_nature": models.ListedBuildingProtectionNature,
"museum_collection_entry_mode": models.CollectionEntryModeType,
"museum_inventory_marking_presence": models.InventoryMarkingPresence,
"museum_marking_type": models.MarkingType,
@@ -281,11 +290,13 @@ class BasicFindForm(MuseumForm, CustomForm, ManageOldType):
"denomination",
"previous_id",
"laboratory_id",
+ "title",
"museum_id",
"museum_id_comment",
"seal_number",
"museum_inventory_marking_presence",
"museum_marking_type",
+ "mark_text",
"mark",
"museum_owner_institution",
"museum_assigned_institution",
@@ -306,6 +317,8 @@ class BasicFindForm(MuseumForm, CustomForm, ManageOldType):
"museum_original_repro",
"museum_allocation_date",
"museum_purchase_price",
+ "iconographic_pattern",
+ "iconography_notes",
"description",
"public_description",
"get_first_base_find__discovery_method",
@@ -331,6 +344,7 @@ class BasicFindForm(MuseumForm, CustomForm, ManageOldType):
"cultural_attribution",
"period",
"dating_comment",
+ "actor",
"length",
"width",
"height",
@@ -347,6 +361,8 @@ class BasicFindForm(MuseumForm, CustomForm, ManageOldType):
"check_date",
]
extra_form_modals = [
+ "author",
+ "qualifiedbiographicalnote",
"biographicalnote",
"person",
"organization",
@@ -388,12 +404,11 @@ class BasicFindForm(MuseumForm, CustomForm, ManageOldType):
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"))
- label = forms.CharField(
- label=_("Free ID"), validators=[validators.MaxLengthValidator(60)]
- )
+ label = forms.CharField(label=_("Free ID"))
denomination = forms.CharField(label=_("Denomination"), required=False)
previous_id = forms.CharField(label=_("Previous ID"), required=False)
laboratory_id = forms.CharField(label=_("Laboratory ID"), required=False)
+ title = forms.CharField(label=_("Title"), required=False)
seal_number = forms.CharField(label=_("Seal number"), required=False)
museum_inventory_marking_presence = widgets.Select2MultipleField(
label=_("Presence of inventory marking"), required=False
@@ -401,6 +416,7 @@ class BasicFindForm(MuseumForm, CustomForm, ManageOldType):
museum_marking_type = widgets.Select2MultipleField(
label=_("Type of marking"), required=False
)
+ mark_text = forms.CharField(label=_("Transcription of the marking"), required=False)
mark = forms.CharField(label=_("Marking details"), required=False)
HEADERS["ownership_status"] = FormHeader(_("Ownership"))
ownership_status = forms.ChoiceField(
@@ -449,6 +465,12 @@ class BasicFindForm(MuseumForm, CustomForm, ManageOldType):
)
museum_allocation_date = DateField(label=_("Date of museum allocation"), required=False)
museum_purchase_price = forms.CharField(label=_("Purchase price"), required=False)
+ iconographic_pattern = widgets.Select2MultipleField(
+ label=_("Iconographic patterns"), required=False,
+ )
+ iconography_notes = forms.CharField(
+ label=_("Iconography notes"), widget=forms.Textarea, required=False
+ )
HEADERS["museum_inventory_transcript"] = FormHeader(_("Description"))
museum_inventory_transcript = forms.CharField(
@@ -526,6 +548,9 @@ class BasicFindForm(MuseumForm, CustomForm, ManageOldType):
dating_comment = forms.CharField(
label=_("Comment on datings"), required=False, widget=forms.Textarea
)
+ actor = widgets.Select2MultipleField(
+ model=QualifiedBiographicalNote, label=_("Actors"), required=False,
+ remote=True, new=True, remote_filter='qualification_type__F')
HEADERS["length"] = FormHeader(_("Dimensions"))
length = FloatField(
@@ -571,9 +596,26 @@ class BasicFindForm(MuseumForm, CustomForm, ManageOldType):
label=_("Dimensions comment"), required=False, widget=forms.Textarea
)
+ HEADERS["listed_building_id"] = FormHeader(_("Listed buildings"))
+ listed_building_id = forms.CharField(label=_("Listed building ID"), required=False)
+ listed_building_protection_nature = forms.ChoiceField(
+ label=_("Nature of listed buildings protection"), choices=[],
+ required=False
+ )
+ listed_building_date = DateField(
+ label=_("Date of listing as a listed building"),
+ required=False)
+ listed_building_notes = forms.CharField(
+ label=_("Notes on listed building"), required=False,
+ widget=forms.Textarea)
+
HEADERS["checked_type"] = FormHeader(_("Sheet"))
checked_type = forms.ChoiceField(label=_("Check"), required=False)
check_date = DateField(initial=get_now, label=_("Check date"))
+ editor = widgets.Select2MultipleField(
+ label=_("Editors"), required=False,
+ model=Author, remote=True, new=True
+ )
TYPES = [
FieldType(
@@ -598,6 +640,8 @@ class BasicFindForm(MuseumForm, 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("iconographic_pattern", models.IconographicPatternType, is_multiple=True),
+ FieldType("listed_building_protection_nature", models.ListedBuildingProtectionNature),
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),
@@ -661,11 +705,13 @@ class FindForm(BasicFindForm):
"denomination",
"previous_id",
"get_first_base_find__excavation_id",
+ "title",
"laboratory_id",
"museum_id",
"seal_number",
"museum_inventory_marking_presence",
"museum_marking_type",
+ "mark_text",
"mark",
"ownership_status",
"owner",
@@ -685,8 +731,10 @@ class FindForm(BasicFindForm):
"museum_inventory_conformity",
"museum_conformity_comment",
"museum_original_repro",
- "museum_allocation_date",
"museum_purchase_price",
+ "iconographic_pattern",
+ "iconography_notes",
+ "museum_allocation_date",
"museum_inventory_transcript",
"description",
"public_description",
@@ -717,6 +765,7 @@ class FindForm(BasicFindForm):
"comment",
"period",
"dating_comment",
+ "actor",
"length",
"width",
"height",
@@ -729,8 +778,13 @@ class FindForm(BasicFindForm):
"clutter_short_side",
"clutter_height",
"dimensions_comment",
+ "listed_building_id",
+ "listed_building_protection_nature",
+ "listed_building_date",
+ "listed_building_notes",
"checked_type",
"check_date",
+ "editor",
]
HEADERS = BasicFindForm.HEADERS.copy()
@@ -1567,6 +1621,10 @@ class PreservationForm(CustomForm, ManageOldType):
widget=widgets.Select2Multiple,
required=False,
)
+ conservatory_states_details = forms.CharField(
+ label=_("Conservatory state details"), required=False,
+ widget=forms.Textarea
+ )
alteration = forms.MultipleChoiceField(
label=_("Alteration"),
choices=[],
diff --git a/archaeological_finds/models_finds.py b/archaeological_finds/models_finds.py
index 5f5a0df5d..1bd3d6b6a 100644
--- a/archaeological_finds/models_finds.py
+++ b/archaeological_finds/models_finds.py
@@ -2387,7 +2387,7 @@ class Find(
dimensions_comment = models.TextField(
_("Dimensions comment"), blank=True, default=""
)
- mark_text = models.TextField(_("Mark text"), blank=True, default="")
+ mark_text = models.TextField(_("Transcription of the marking"), blank=True, default="")
mark = models.TextField(_("Marking details"), blank=True, default="")
comment = models.TextField(_("General comment"), blank=True, default="")
dating_comment = models.TextField(_("Comment on dating"), blank=True, default="")