class ValidDateValidationForm(forms.Form): """Validate DateValidationForm with start_date and end_date attribute.""" start_date = forms.DateField() end_date = forms.DateField() def clean(self): """Modify the form's cleaned data dictionary.""" cleaned_data = super(ValidDateValidationForm, self).clean() start_date = cleaned_data.get('start_date', None) end_date = cleaned_data.get('end_date', None) if start_date and not end_date: self._errors['end_date'] = ["End date is missing"] if end_date and not start_date: self._errors['start_date'] = ["Start date is missing"] if not start_date and not end_date: del self._errors['start_date'] del self._errors['end_date'] if start_date and end_date: self.cleaned_data['type'] = 'valid' return self.cleaned_data
class CoverageTemporalForm(forms.Form): """Render Coverage Temporal Form.""" start = forms.DateField(label='Start Date') end = forms.DateField(label='End Date') def __init__(self, allow_edit=True, res_short_id=None, element_id=None, *args, **kwargs): """Render Coverage Temporal Form.""" file_type = kwargs.pop('file_type', False) super(CoverageTemporalForm, self).__init__(*args, **kwargs) self.helper = CoverageTemporalFormHelper(allow_edit, res_short_id, element_id, element_name='Temporal Coverage', file_type=file_type) self.number = 0 self.delete_modal_form = None if res_short_id: self.action = "/hsapi/_internal/%s/coverage/add-metadata/" % res_short_id else: self.action = "" if not allow_edit: for field in self.fields.values(): field.widget.attrs['readonly'] = True def clean(self): """Modify the form's cleaned_data dictionary.""" is_form_errors = False super(CoverageTemporalForm, self).clean() start_date = self.cleaned_data.get('start', None) end_date = self.cleaned_data.get('end', None) if not start_date: self._errors['start'] = ["Data for start date is missing"] is_form_errors = True if not end_date: self._errors['end'] = ["Data for end date is missing"] is_form_errors = True if start_date > end_date: self._errors['end'] = ["End date should be date after the start date"] is_form_errors = True if is_form_errors: return self.cleaned_data if 'name' in self.cleaned_data: if len(self.cleaned_data['name']) == 0: del self.cleaned_data['name'] self.cleaned_data['start'] = self.cleaned_data['start'].isoformat() self.cleaned_data['end'] = self.cleaned_data['end'].isoformat() self.cleaned_data['value'] = copy.deepcopy(self.cleaned_data) self.cleaned_data['type'] = 'period' if 'name' in self.cleaned_data: del self.cleaned_data['name'] del self.cleaned_data['start'] del self.cleaned_data['end'] return self.cleaned_data
class ValidDateValidationForm(forms.Form): start_date = forms.DateField() end_date = forms.DateField() def clean(self): cleaned_data = super(ValidDateValidationForm, self).clean() start_date = cleaned_data.get('start_date', None) end_date = cleaned_data.get('end_date', None) if start_date and not end_date: self._errors['end_date'] = ["End date is missing"] if end_date and not start_date: self._errors['start_date'] = ["Start date is missing"] if not start_date and not end_date: del self._errors['start_date'] del self._errors['end_date'] if start_date and end_date: self.cleaned_data['type'] = 'valid' return self.cleaned_data