diff options
| author | Étienne Loks <etienne.loks@iggdrasil.net> | 2026-04-01 15:58:39 +0200 |
|---|---|---|
| committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2026-04-02 13:30:50 +0200 |
| commit | 205ad98138447af4b86cd11d38c3c382ea1656cd (patch) | |
| tree | 221ada912a6f6f74cfd4699b30bd0a2488b4a586 /archaeological_context_records/forms.py | |
| parent | 986d6c2c372df1bf1962533e4a24080da4d79c8a (diff) | |
| download | Ishtar-205ad98138447af4b86cd11d38c3c382ea1656cd.tar.bz2 Ishtar-205ad98138447af4b86cd11d38c3c382ea1656cd.zip | |
♻ refactor dating fields searches
Diffstat (limited to 'archaeological_context_records/forms.py')
| -rw-r--r-- | archaeological_context_records/forms.py | 45 |
1 files changed, 3 insertions, 42 deletions
diff --git a/archaeological_context_records/forms.py b/archaeological_context_records/forms.py index 93ff65c25..0e5b752eb 100644 --- a/archaeological_context_records/forms.py +++ b/archaeological_context_records/forms.py @@ -20,7 +20,6 @@ """ Context records forms definitions """ -from collections import OrderedDict from copy import copy from itertools import groupby @@ -54,6 +53,7 @@ from ishtar_common.forms import ( MultiSearchForm, LockForm, GeoItemSelect, + DatingSelect, QAForm, ) from ishtar_common.forms_common import get_town_field @@ -90,46 +90,7 @@ class OperationFormSelection(CustomForm, forms.Form): ) -class PeriodSelect(forms.Form): - datings__period = forms.ChoiceField(label=_("Dating - period"), choices=[]) - datings__precise_dating = forms.CharField(label=_("Dating - precise")) - datings__start_date = forms.IntegerField(label=_("Dating - start date")) - datings__end_date = forms.IntegerField(label=_("Dating - end date")) - datings__dating_type = forms.ChoiceField( - label=_("Dating - dating type"), choices=[] - ) - datings__quality = forms.ChoiceField(label=_("Dating - dating quality"), choices=[]) - TYPES = [ - FieldType("datings__period", Period), - FieldType("datings__dating_type", models.DatingType), - FieldType("datings__quality", models.DatingQuality), - ] - PERIOD_FIELDS = [ - "datings__period", - "datings__precise_dating", - "datings__start_date", - "datings__end_date", - "datings__dating_type", - "datings__quality", - ] - - def _reorder_period_fields(self, insert_period_after): - fields = OrderedDict() - for key in self.fields: - if key in self.PERIOD_FIELDS: - continue - fields[key] = self.fields[key] - if key == insert_period_after: - for period_key in self.PERIOD_FIELDS: - if period_key not in self.fields: - continue - fields[period_key] = self.fields[period_key] - if period_key in self.fields: - fields[period_key] = self.fields[period_key] - self.fields = fields - - -class RecordSelect(GeoItemSelect, PeriodSelect): +class RecordSelect(GeoItemSelect, DatingSelect): _model = models.ContextRecord form_admin_name = _("Context record - 001 - Search") form_slug = "contextrecord-001-search" @@ -192,7 +153,7 @@ class RecordSelect(GeoItemSelect, PeriodSelect): colors = forms.ChoiceField(label=_("Colors"), choices=[]) details_on_color = forms.CharField(label=_("Details on color")) - TYPES = PeriodSelect.TYPES + [ + TYPES = DatingSelect.TYPES + [ FieldType('area', Area), FieldType("periods", Period), FieldType('cultural_attributions', models.CulturalAttributionType), |
