From afb60d9f6d59816fb4e3e1986ab5d2f29f5603fc Mon Sep 17 00:00:00 2001 From: Étienne Loks Date: Sat, 8 Jan 2011 23:31:46 +0100 Subject: Manage instanciation of wizard (refs #51) --- ishtar/furnitures/forms.py | 23 +++++++++++++++++++++-- 1 file 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 -- cgit v1.2.3