diff options
author | Étienne Loks <etienne.loks@proxience.com> | 2015-11-13 15:57:35 +0100 |
---|---|---|
committer | Étienne Loks <etienne.loks@proxience.com> | 2015-11-13 15:57:35 +0100 |
commit | 11ccbda37213ef30d8501cadb2c2316dfb1ad61c (patch) | |
tree | d684645b2667a4bac8c249853363f92e530182cf /ishtar_common/wizards.py | |
parent | bdea19f94e7243c18042adba7e0c0e0ebfd22006 (diff) | |
download | Ishtar-11ccbda37213ef30d8501cadb2c2316dfb1ad61c.tar.bz2 Ishtar-11ccbda37213ef30d8501cadb2c2316dfb1ad61c.zip |
Wizards: fix ordering of get value multi keys - allow customization of final wizard
Diffstat (limited to 'ishtar_common/wizards.py')
-rw-r--r-- | ishtar_common/wizards.py | 20 |
1 files changed, 18 insertions, 2 deletions
diff --git a/ishtar_common/wizards.py b/ishtar_common/wizards.py index b3e5c4122..21cfa6ceb 100644 --- a/ishtar_common/wizards.py +++ b/ishtar_common/wizards.py @@ -58,6 +58,7 @@ class Wizard(NamedUrlWizardView): translated_keys = ['title'] wizard_done_template = 'ishtar/wizard/wizard_done.html' wizard_done_window = '' + wizard_confirm = 'ishtar/wizard/confirm_wizard.html' wizard_templates = {} @staticmethod @@ -107,7 +108,7 @@ class Wizard(NamedUrlWizardView): if current_step in wizard_templates: templates = [wizard_templates[current_step]] + templates elif current_step == self.steps.last: - templates = ['ishtar/wizard/confirm_wizard.html'] + templates + templates = [self.wizard_confirm] + templates return templates def get_context_data(self, form, **kwargs): @@ -626,6 +627,18 @@ class Wizard(NamedUrlWizardView): files=self.storage.get_step_files(self.steps.current)) return self.render(form) + def session_get_keys(self, form_key): + """Get list of available keys for a specific form + """ + request = self.request + storage = self.storage + test = storage.prefix in request.session \ + and 'step_data' in request.session[storage.prefix] \ + and form_key in request.session[storage.prefix]['step_data'] + if not test: + return [] + return request.session[storage.prefix]['step_data'][form_key].keys() + def session_has_key(self, form_key, key=None, multi=None): """Check if the session has value of a specific form and (if provided) of a key @@ -691,9 +704,12 @@ class Wizard(NamedUrlWizardView): if k.startswith(form_key) and k.endswith(key) and \ request.session[storage.prefix]['step_data'][form_key][k]: val = request.session[storage.prefix]['step_data'][form_key][k] + number = int(k[len(form_key):-len(key)].strip('-')) if type(val) in (list, tuple): val = val[0] - vals.append(val) + vals.append((number, val)) + # reorder list + vals = [v for idx, v in sorted(vals)] return vals def get_current_object(self): |