clean (alt_)last_day if set to same value as (alt_)first_day.

This commit is contained in:
2018-02-23 15:33:47 +01:00
parent c836a9c00e
commit 72e04eb3f0
3 changed files with 54 additions and 42 deletions

View File

@@ -42,12 +42,7 @@ class ChainedForm(forms.Form):
self._session_data[k] = self._deserialize_value(session_data[k])
def _proceed_session_data(self, session_data):
form_initials = app_config.settings.form_initials.get(self.__class__.__name__, dict())
for fieldname in self.fields:
if fieldname in form_initials:
value = form_initials[fieldname].get_value(session_data)
if value is not None:
self.fields[fieldname].initial = value
pass
def _save_session_data(self):
if self._request is not None and hasattr(self._request, 'session'):
@@ -57,6 +52,10 @@ class ChainedForm(forms.Form):
session_data[k] = self._serialize_value(self._session_data[k])
self._request.session[session_var_name] = session_data
def _post_clean(self):
self._session_data.update(self.cleaned_data)
self._save_session_data()
def _get_model(self):
if not hasattr(self, '_model'):
raise ImproperlyConfigured('{cls} is missing a Model.'
@@ -103,11 +102,14 @@ class ChainedForm(forms.Form):
def get_next_form_name(cls):
return cls._next_form_name
def clean(self):
cleaned_data = super(ChainedForm, self).clean()
self._session_data.update(cleaned_data)
self._save_session_data()
return cleaned_data
def get_initial_for_field(self, field, field_name):
form_name = self.__class__.__name__
form_initials = app_config.settings.form_initials
if form_name in form_initials and field_name in form_initials[form_name]:
value = app_config.settings.form_initials[form_name][field_name].get_value(self._session_data)
else:
value = super(ChainedForm, self).get_initial_for_field(field, field_name)
return value
def save(self):
object_kwargs = dict()