summaryrefslogtreecommitdiff
path: root/ishtar_common/wizards.py
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@peacefrogs.net>2013-04-17 02:30:16 +0200
committerÉtienne Loks <etienne.loks@peacefrogs.net>2013-04-17 02:30:16 +0200
commit7db1383ea51e71abda0eeb4e7bb38796cc17f8f4 (patch)
tree4e52c3b43085c61590db9fcccd34d8eb234825e5 /ishtar_common/wizards.py
parent2b9c755e4e57ba4e0b44820301bf1acb8be7616e (diff)
downloadIshtar-7db1383ea51e71abda0eeb4e7bb38796cc17f8f4.tar.bz2
Ishtar-7db1383ea51e71abda0eeb4e7bb38796cc17f8f4.zip
Fix "validate and end" on empty forms
Diffstat (limited to 'ishtar_common/wizards.py')
-rw-r--r--ishtar_common/wizards.py14
1 files changed, 11 insertions, 3 deletions
diff --git a/ishtar_common/wizards.py b/ishtar_common/wizards.py
index df7eaaac1..5229880ef 100644
--- a/ishtar_common/wizards.py
+++ b/ishtar_common/wizards.py
@@ -125,7 +125,10 @@ class Wizard(NamedUrlWizardView):
storage = self.storage
# if modification: show the next steps
if self.modification:
- next_step = step
+ next_step = self.steps.first
+ current_step_passed = False
+ # force rechecking of conditions
+ self.get_form_list()
while next_step:
# check if the form is initialized otherwise initialize it
if not storage.get_step_data(next_step):
@@ -141,8 +144,14 @@ class Wizard(NamedUrlWizardView):
for key in v:
form_key = next_step + prefix + key
prefixed_values[form_key] = v[key]
+ if not prefixed_values:
+ # simulate a non empty data for form that might be
+ # valid when empty
+ prefixed_values['__non_empty_data'] = ''
storage.set_step_data(next_step, prefixed_values)
- if step != next_step: # if not current step
+ if step == next_step:
+ current_step_passed = True
+ elif current_step_passed:
next_steps.append(self.form_list[next_step])
next_step = self.get_next_step(next_step)
context.update({'next_steps':next_steps})
@@ -584,7 +593,6 @@ class Wizard(NamedUrlWizardView):
model_name = self.form_list[step].associated_models['pk'
].__name__.lower()
if step == current_step:
- #self.reset_wizard(request, storage)
self.storage.reset()
val = model_name in request.session and request.session[model_name]
if val: