summaryrefslogtreecommitdiff
path: root/ishtar_common
diff options
context:
space:
mode:
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
commit11ccbda37213ef30d8501cadb2c2316dfb1ad61c (patch)
treed684645b2667a4bac8c249853363f92e530182cf /ishtar_common
parentbdea19f94e7243c18042adba7e0c0e0ebfd22006 (diff)
downloadIshtar-11ccbda37213ef30d8501cadb2c2316dfb1ad61c.tar.bz2
Ishtar-11ccbda37213ef30d8501cadb2c2316dfb1ad61c.zip
Wizards: fix ordering of get value multi keys - allow customization of final wizard
Diffstat (limited to 'ishtar_common')
-rw-r--r--ishtar_common/wizards.py20
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):