diff options
Diffstat (limited to 'archaeological_context_records/forms.py')
| -rw-r--r-- | archaeological_context_records/forms.py | 65 |
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) |
