summaryrefslogtreecommitdiff
path: root/archaeological_context_records/forms.py
diff options
context:
space:
mode:
Diffstat (limited to 'archaeological_context_records/forms.py')
-rw-r--r--archaeological_context_records/forms.py65
1 files changed, 0 insertions, 65 deletions
diff --git a/archaeological_context_records/forms.py b/archaeological_context_records/forms.py
index bd59ddb8d..93ff65c25 100644
--- a/archaeological_context_records/forms.py
+++ b/archaeological_context_records/forms.py
@@ -898,68 +898,3 @@ class QAContextRecordFormMulti(QAForm):
def _set_qa_relation_type(self, item, __):
pass
-
-
-class QADating(ManageOldType, forms.Form):
- form_label = _("Dating")
- associated_models = {
- "dating_type_id": models.DatingType,
- "quality_id": models.DatingQuality,
- "period_id": models.Period,
- }
- pk = forms.IntegerField(required=False, widget=forms.HiddenInput)
- reference = forms.CharField(
- label=_("Reference"), validators=[validators.MaxLengthValidator(400)],
- required=False
- )
- period_id = widgets.Select2SimpleField(
- label=_("Period"), required=False, modal="modal-dynamic-form"
- )
- start_date = forms.IntegerField(label=_("Start date"), required=False)
- end_date = forms.IntegerField(label=_("End date"), required=False)
- quality_id = forms.ChoiceField(label=_("Quality"), required=False, choices=[])
- dating_type_id = forms.ChoiceField(label=_("Dating type"), required=False, choices=[])
- precise_dating = forms.CharField(label=_("Precise on this dating"), required=False,
- widget=forms.Textarea)
-
- TYPES = [
- FieldType("dating_type_id", models.DatingType),
- FieldType("quality_id", models.DatingQuality),
- FieldType("period_id", models.Period),
- ]
-
- def __init__(self, *args, **kwargs):
- self.dating_model = kwargs.pop("dating_model")
- self.current_item = kwargs.pop("current_item")
- return super().__init__(*args, **kwargs)
-
- def clean(self):
- data = self.cleaned_data
- reference = data['reference']
- if reference:
- q_attr = {
- "reference": reference,
- self.dating_model.CURRENT_MODEL_ATTR + "_id": self.current_item.pk
- }
- q = self.dating_model.objects.filter(**q_attr)
- if data.get("pk", None):
- q = q.exclude(pk=data["pk"])
- if q.count():
- raise forms.ValidationError(
- _("This reference already exists for this item.")
- )
- if any(1 for k in self.cleaned_data if self.cleaned_data[k]):
- return data
- raise forms.ValidationError(_("No data provided."))
-
- def save(self):
- data = copy(self.cleaned_data)
- data[self.dating_model.CURRENT_MODEL_ATTR + "_id"] = self.current_item.pk
- for attr in ['period_id', 'quality_id', 'dating_type_id']:
- if not data.get(attr, None):
- data[attr] = None
- if data.get("pk", None):
- pk = data.pop("pk")
- self.dating_model.objects.filter(pk=pk).update(**data)
- return
- self.dating_model.objects.create(**data)