summaryrefslogtreecommitdiff
path: root/ishtar/ishtar_base/forms.py
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@peacefrogs.net>2011-09-02 20:40:23 +0200
committerÉtienne Loks <etienne.loks@peacefrogs.net>2011-09-02 20:40:23 +0200
commit167ebb475f74e5a43a58f45d968589ce5b67c8ad (patch)
tree0fdcaf80aa168175feab0f0786a4eec654487f66 /ishtar/ishtar_base/forms.py
parent3b134c6089abb62b51d0eb088cac038d5323891b (diff)
downloadIshtar-167ebb475f74e5a43a58f45d968589ce5b67c8ad.tar.bz2
Ishtar-167ebb475f74e5a43a58f45d968589ce5b67c8ad.zip
Add a "Validate and end" button for modifications (closes #438)
Diffstat (limited to 'ishtar/ishtar_base/forms.py')
-rw-r--r--ishtar/ishtar_base/forms.py14
1 files changed, 12 insertions, 2 deletions
diff --git a/ishtar/ishtar_base/forms.py b/ishtar/ishtar_base/forms.py
index 287a181f4..01b1b9dfd 100644
--- a/ishtar/ishtar_base/forms.py
+++ b/ishtar/ishtar_base/forms.py
@@ -143,8 +143,8 @@ class Wizard(NamedUrlSessionFormWizard):
context.update({'previous_steps':previous_steps,
'previous_step_counter':previous_step_counter})
# if modification: show the next steps
- next_step = step
if self.modification:
+ next_step = step
while next_step:
# check if the form is initialized otherwise initialize it
if not storage.get_step_data(next_step):
@@ -506,13 +506,23 @@ class Wizard(NamedUrlSessionFormWizard):
def render_next_step(self, request, storage, form, **kwargs):
"""
- Manage the modify or delete button in formset: next_step = current_step
+ Manage:
+ - modify or delete button in formset: next step = current step
+ - validate and end: nextstep = last step
"""
if request.POST.has_key('formset_modify') \
and request.POST['formset_modify'] \
or [key for key in request.POST.keys()
if key.endswith('DELETE') and request.POST[key]]:
return self.render(request, storage, form, **kwargs)
+ elif request.POST.has_key('validate_and_end') \
+ and request.POST['validate_and_end']:
+ last_step = self.get_last_step(request, storage)
+ new_form = self.get_form(request, storage, last_step,
+ data=storage.get_step_data(last_step),
+ files=storage.get_step_files(last_step))
+ storage.set_current_step(last_step)
+ return self.render(request, storage, new_form, **kwargs)
return super(Wizard, self).render_next_step(request, storage, form,
**kwargs)