diff options
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 |
commit | 2d940ef4a5133010d10c8bf40e06f2666d5a5538 (patch) | |
tree | 4e52c3b43085c61590db9fcccd34d8eb234825e5 | |
parent | 6695d8c362bc7632cb7f851255759dece9c37fb2 (diff) | |
download | Ishtar-2d940ef4a5133010d10c8bf40e06f2666d5a5538.tar.bz2 Ishtar-2d940ef4a5133010d10c8bf40e06f2666d5a5538.zip |
Fix "validate and end" on empty forms
-rw-r--r-- | ishtar_common/wizards.py | 14 |
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: |