summaryrefslogtreecommitdiff
path: root/archaeological_operations
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2024-09-19 15:42:03 +0200
committerÉtienne Loks <etienne.loks@iggdrasil.net>2024-09-20 15:47:14 +0200
commit80f8712a5d25a4b2c7c186b8f260561ea35441c1 (patch)
treece095cf8640f1d025dc7c89f2c0dd4c0ecda2370 /archaeological_operations
parent9e7b90546562144abc2c7195743ec34507f57cc2 (diff)
downloadIshtar-80f8712a5d25a4b2c7c186b8f260561ea35441c1.tar.bz2
Ishtar-80f8712a5d25a4b2c7c186b8f260561ea35441c1.zip
✨ archaeological sites edit form: add new fields, simplify forms
Diffstat (limited to 'archaeological_operations')
-rw-r--r--archaeological_operations/forms.py64
-rw-r--r--archaeological_operations/models.py3
-rw-r--r--archaeological_operations/views.py2
3 files changed, 48 insertions, 21 deletions
diff --git a/archaeological_operations/forms.py b/archaeological_operations/forms.py
index 9cc73e63b..1dbafbd14 100644
--- a/archaeological_operations/forms.py
+++ b/archaeological_operations/forms.py
@@ -1306,17 +1306,42 @@ class SiteForm(CustomForm, ManageOldType):
form_label = _("General")
form_admin_name = _("Archaeological site - 010 - General")
form_slug = "archaeological_site-010-general"
- associated_models = {'period': models.Period, 'remain': models.RemainType,
- 'spatial_reference_system': SpatialReferenceSystem,
- 'cultural_attribution': models.CulturalAttributionType,
- 'collaborator': Person}
- base_models = ["period", "remain", "collaborator", "cultural_attribution"]
+ associated_models = {
+ 'period': models.Period, 'remain': models.RemainType,
+ 'spatial_reference_system': SpatialReferenceSystem,
+ 'cultural_attribution': models.CulturalAttributionType,
+ 'collaborator': Person,
+ 'discoverer': Person,
+ "nature_of_site": models.NatureOfSiteType,
+ "interpretation_level": models.InterpretationLevelType,
+ "discovery_status": models.SiteDiscoveryStatusType,
+ "current_status": models.SiteCurrentStatusType,
+ "town": Town,
+ "type": models.SiteType,
+ }
+ base_models = ["period", "remain", "collaborator", "cultural_attribution", "town", "type"]
pk = forms.IntegerField(required=False, widget=forms.HiddenInput)
reference = forms.CharField(label=_("Reference"), max_length=200)
name = forms.CharField(label=_("Name"), max_length=200, required=False)
other_reference = forms.CharField(label=_("Other reference"),
required=False)
+ collaborator = widgets.Select2MultipleField(
+ model=Person, label=_("Collaborators"), required=False, remote=True)
+ description = forms.CharField(label=_("Description"), widget=forms.Textarea,
+ required=False)
+ public_description = forms.CharField(label=_("Public description"), widget=forms.Textarea,
+ required=False)
+ comment = forms.CharField(label=_("Comment"), widget=forms.Textarea,
+ required=False)
+ HEADERS['type'] = FormHeader(_("Scientific"))
+ type = forms.MultipleChoiceField(
+ label=_("Types"), choices=[], widget=widgets.Select2Multiple,
+ required=False)
+ nature_of_site = forms.ChoiceField(choices=[], label=_("Nature of site"), required=False)
+ interpretation_level = forms.ChoiceField(choices=[], label=_("Interpretation level"), required=False)
+ discovery_status = forms.ChoiceField(choices=[], label=_("Discovery status"), required=False)
+ current_status = forms.ChoiceField(choices=[], label=_("Current status"), required=False)
period = forms.MultipleChoiceField(
label=_("Periods"), choices=[], widget=widgets.Select2Multiple,
required=False)
@@ -1327,10 +1352,16 @@ class SiteForm(CustomForm, ManageOldType):
label=_("Cultural attributions"), choices=[],
widget=widgets.Select2Multiple,
required=False)
- collaborator = widgets.Select2MultipleField(
- model=Person, label=_("Collaborators"), required=False, remote=True)
- comment = forms.CharField(label=_("Comment"), widget=forms.Textarea,
- required=False)
+ discoverer = widgets.Select2SimpleField(
+ model=Person, label=_("Discoverer"), required=False, remote=True)
+ HEADERS['town'] = FormHeader(_("Localization"))
+ town = widgets.Select2MultipleField(
+ model=Town, label=_("Towns"), required=False, remote=True
+ )
+ precise_locality = forms.CharField(
+ label=_("Precise locality"),
+ widget=forms.Textarea, required=False
+ )
locality_ngi = forms.CharField(
label=_("National Geographic Institute locality"),
widget=forms.Textarea, required=False
@@ -1341,15 +1372,19 @@ class SiteForm(CustomForm, ManageOldType):
)
TYPES = [
+ FieldType('type', models.SiteType, True),
FieldType('period', models.Period, True),
FieldType('remain', models.RemainType, True),
FieldType('cultural_attribution',
models.CulturalAttributionType, True),
- FieldType('spatial_reference_system', SpatialReferenceSystem),
+ FieldType('nature_of_site', models.NatureOfSiteType),
+ FieldType('interpretation_level', models.InterpretationLevelType),
+ FieldType('current_status', models.SiteCurrentStatusType),
+ FieldType('discovery_status', models.SiteDiscoveryStatusType),
]
def __init__(self, *args, **kwargs):
- super(SiteForm, self).__init__(*args, **kwargs)
+ super().__init__(*args, **kwargs)
if 'collaborator' in self.fields:
self.fields['collaborator'].widget.attrs['full-width'] = True
@@ -1363,13 +1398,6 @@ class SiteForm(CustomForm, ManageOldType):
return reference
-SiteTownFormset = formset_factory(TownForm, can_delete=True,
- formset=TownFormSet)
-SiteTownFormset.form_label = _("Towns")
-SiteTownFormset.form_admin_name = _("Archaeological site - 020 - Towns")
-SiteTownFormset.form_slug = "archaeological_site-020-towns"
-
-
def check_underwater_module(self):
return get_current_profile().underwater
diff --git a/archaeological_operations/models.py b/archaeological_operations/models.py
index f4c12beb0..471c104c9 100644
--- a/archaeological_operations/models.py
+++ b/archaeological_operations/models.py
@@ -383,8 +383,9 @@ class ArchaeologicalSite(
BASE_SEARCH_VECTORS = [
SearchVectorConfig("comment", "local"),
SearchVectorConfig("description", "local"),
- SearchVectorConfig("precise_description", "local"),
+ SearchVectorConfig("public_description", "local"),
SearchVectorConfig("discovery_area", "local"),
+ SearchVectorConfig("precise_locality", "local"),
SearchVectorConfig("locality_cadastral", "local"),
SearchVectorConfig("locality_ngi", "local"),
SearchVectorConfig("name"),
diff --git a/archaeological_operations/views.py b/archaeological_operations/views.py
index 93fb1864b..70732d04e 100644
--- a/archaeological_operations/views.py
+++ b/archaeological_operations/views.py
@@ -645,7 +645,6 @@ site_search_wizard = wizards.SiteSearch.as_view(
site_creation_steps = [
("general-site_creation", forms.SiteForm),
- ("towns-site_creation", forms.SiteTownFormset),
("underwater-site_creation", forms.SiteUnderwaterForm),
("final-site_creation", FinalForm),
]
@@ -659,7 +658,6 @@ site_creation_wizard = wizards.SiteWizard.as_view(
site_modification_steps = [
("selec-site_modification", forms.SiteFormSelection),
("general-site_modification", forms.SiteForm),
- ("towns-site_modification", forms.SiteTownFormset),
("underwater-site_modification", forms.SiteUnderwaterForm),
("final-site_modification", FinalForm),
]