BROKEN: started to improve session passing in chained form.
This commit is contained in:
@@ -164,21 +164,26 @@ class EventCreateView(generic.FormView):
|
||||
|
||||
return form_class
|
||||
|
||||
def get_form_kwargs(self):
|
||||
kwargs = super(EventCreateView, self).get_form_kwargs()
|
||||
if 'request' not in kwargs:
|
||||
kwargs['request'] = self.request
|
||||
return kwargs
|
||||
|
||||
def get_context_data(self, **kwargs):
|
||||
context = super(EventCreateView, self).get_context_data(**kwargs)
|
||||
context['abort_url'] = self.abort_url
|
||||
return context
|
||||
|
||||
def form_valid(self, form):
|
||||
form.add_session_data(self.request.session.get('dav_events_event_create_previous_data', dict()))
|
||||
event = form.save()
|
||||
|
||||
next_form_name = form.next_form_name
|
||||
if next_form_name:
|
||||
self.request.session['dav_events_event_create_previous_data'] = form.get_session_data()
|
||||
self.request.session['dav_events_event_create_next_form_name'] = next_form_name
|
||||
next_form_class = self.get_form_class(next_form_name)
|
||||
next_form = next_form_class(session_data=form.get_session_data())
|
||||
# XXX get_form() passes data into form
|
||||
next_form = self.get_form(form_class=next_form_class)
|
||||
return self.render_to_response(self.get_context_data(form=next_form, event=event))
|
||||
else:
|
||||
event.save()
|
||||
@@ -198,8 +203,6 @@ class EventCreateView(generic.FormView):
|
||||
session = self.request.session
|
||||
if 'dav_events_event_create_next_form_name' in session:
|
||||
del session['dav_events_event_create_next_form_name']
|
||||
if 'dav_events_event_create_previous_data' in session:
|
||||
del session['dav_events_event_create_previous_data']
|
||||
|
||||
def get(self, request, *args, **kwargs):
|
||||
self.clean_session_data(request.session)
|
||||
|
||||
Reference in New Issue
Block a user