Added primitive Back button to EventCreate.
This commit is contained in:
@@ -17,6 +17,11 @@ class ChainedForm(forms.Form):
|
||||
self._request = kwargs.pop('request', None)
|
||||
self._load_session_data()
|
||||
|
||||
if 'initial' not in kwargs:
|
||||
kwargs['initial'] = self._session_data
|
||||
else:
|
||||
kwargs['initial'].update(self._session_data)
|
||||
|
||||
super(ChainedForm, self).__init__(*args, **kwargs)
|
||||
|
||||
self._proceed_session_data(self._session_data)
|
||||
@@ -34,6 +39,9 @@ class ChainedForm(forms.Form):
|
||||
for k in session_data:
|
||||
self._session_data[k] = self._deserialize_value(session_data[k])
|
||||
|
||||
def _proceed_session_data(self, session_data):
|
||||
pass
|
||||
|
||||
def _save_session_data(self):
|
||||
if self._request is not None and hasattr(self._request, 'session'):
|
||||
session_var_name = '{}_chained_form_session_data'.format(self._request.resolver_match.url_name)
|
||||
@@ -42,9 +50,6 @@ class ChainedForm(forms.Form):
|
||||
session_data[k] = self._serialize_value(self._session_data[k])
|
||||
self._request.session[session_var_name] = session_data
|
||||
|
||||
def _proceed_session_data(self, session_data):
|
||||
pass
|
||||
|
||||
def _get_model(self):
|
||||
if not hasattr(self, '_model'):
|
||||
raise ImproperlyConfigured('{cls} is missing a Model.'
|
||||
@@ -99,7 +104,7 @@ class ChainedForm(forms.Form):
|
||||
|
||||
def save(self):
|
||||
object_kwargs = dict()
|
||||
data = self._session_data
|
||||
data = self._session_data.copy()
|
||||
if 'deadline' in data:
|
||||
buf = data['deadline']
|
||||
if isinstance(buf, basestring):
|
||||
@@ -114,3 +119,10 @@ class ChainedForm(forms.Form):
|
||||
object_kwargs[field] = data[field]
|
||||
|
||||
return self._get_object(object_kwargs)
|
||||
|
||||
def flush_session_data(self):
|
||||
if self._request is not None and hasattr(self._request, 'session'):
|
||||
session_var_name = '{}_chained_form_session_data'.format(self._request.resolver_match.url_name)
|
||||
if session_var_name in self._request.session:
|
||||
del self._request.session[session_var_name]
|
||||
self._session_data = dict()
|
||||
|
||||
Reference in New Issue
Block a user