summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@peacefrogs.net>2011-01-08 23:31:46 +0100
committerÉtienne Loks <etienne.loks@peacefrogs.net>2011-01-08 23:33:41 +0100
commitafb60d9f6d59816fb4e3e1986ab5d2f29f5603fc (patch)
tree71280b9b1c895e547d41eaee97e80f4e44c7c7bd
parentc5c6c90d0fed8ab83bafecb8ea80288286f8ca85 (diff)
downloadIshtar-afb60d9f6d59816fb4e3e1986ab5d2f29f5603fc.tar.bz2
Ishtar-afb60d9f6d59816fb4e3e1986ab5d2f29f5603fc.zip
Manage instanciation of wizard (refs #51)
-rw-r--r--ishtar/furnitures/forms.py23
1 files changed, 21 insertions, 2 deletions
diff --git a/ishtar/furnitures/forms.py b/ishtar/furnitures/forms.py
index 8296175af..d0618ed36 100644
--- a/ishtar/furnitures/forms.py
+++ b/ishtar/furnitures/forms.py
@@ -258,8 +258,23 @@ class Wizard(NamedUrlSessionFormWizard):
return super(Wizard, self).process_post_request(request, storage, *args,
**kwargs)
-class FileWizard(Wizard):
- model = models.File
+ def get_form_initial(self, request, storage, step):
+ main_form_key = 'selec-' + self.url_name
+ pk = main_form_key + '-pk'
+ if storage.prefix in request.session \
+ and 'step_data' in request.session[storage.prefix] \
+ and main_form_key in request.session[storage.prefix]['step_data'] \
+ and pk in request.session[storage.prefix]['step_data']\
+ [main_form_key]:
+ try:
+ idx = int(request.session[storage.prefix]['step_data']
+ [main_form_key][pk])
+ current_obj = self.model.objects.get(pk=idx)
+ return self.get_instanced_init(current_obj, request, storage,
+ step)
+ except(TypeError, ObjectDoesNotExist):
+ pass
+ return super(FileWizard, self).get_form_initial(request, storage, step)
def get_instanced_init(self, obj, request, storage, step):
"""
@@ -298,6 +313,10 @@ class FileWizard(Wizard):
initial.append(vals)
return initial
+
+class FileWizard(Wizard):
+ model = models.File
+
def get_form(self, request, storage, step=None, data=None, files=None):
"""
Manage formset