summaryrefslogtreecommitdiff
path: root/ishtar_common
diff options
context:
space:
mode:
Diffstat (limited to 'ishtar_common')
-rw-r--r--ishtar_common/forms.py41
-rw-r--r--ishtar_common/models.py29
2 files changed, 70 insertions, 0 deletions
diff --git a/ishtar_common/forms.py b/ishtar_common/forms.py
index 416a1a9ec..87d498596 100644
--- a/ishtar_common/forms.py
+++ b/ishtar_common/forms.py
@@ -1571,6 +1571,47 @@ class GeoItemSelect(DocumentItemSelect): # all geo item can have documents
] + DocumentItemSelect.TYPES
+class DatingSelect(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", ("archaeological_operations", "Period")),
+ FieldType("datings__dating_type",
+ ("archaeological_context_records", "DatingType")),
+ FieldType("datings__quality",
+ ("archaeological_context_records", "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 QADating(ManageOldType, forms.Form):
form_label = _("Dating")
associated_models = {
diff --git a/ishtar_common/models.py b/ishtar_common/models.py
index d9923b04d..5b06baba2 100644
--- a/ishtar_common/models.py
+++ b/ishtar_common/models.py
@@ -6284,6 +6284,35 @@ class BaseDating(models.Model, SerializeItem):
SERIALIZE_EXCLUDE = ["find", "context_record", "archaeological_site"]
CURRENT_MODEL = None
CURRENT_MODEL_ATTR = None
+
+ ALT_NAMES = {
+ "datings__period": SearchAltName(
+ pgettext_lazy("key for text search", "dating-period"),
+ "datings__period__label__iexact",
+ ),
+ "datings__precise_dating": SearchAltName(
+ pgettext_lazy("key for text search", "dating-precision"),
+ "datings__precise_dating__iexact",
+ ),
+ "datings__start_date": SearchAltName(
+ pgettext_lazy("key for text search", "dating-start"),
+ "datings__start_date",
+ ),
+ "datings__end_date": SearchAltName(
+ pgettext_lazy("key for text search", "dating-end"),
+ "datings__end_date",
+ ),
+ "datings__dating_type": SearchAltName(
+ pgettext_lazy("key for text search", "dating-type"),
+ "datings__dating_type__label__iexact",
+ ),
+ "datings__quality": SearchAltName(
+ pgettext_lazy("key for text search", "dating-quality"),
+ "datings__quality__label__iexact",
+ ),
+ }
+ NUMBER_FIELDS = ["datings__start_date", "datings__end_date"]
+
uuid = models.UUIDField(default=uuid.uuid4)
reference = models.TextField(_("Reference"), blank=True, default="")
external_id = models.TextField(_("External ID"), blank=True, default="")