diff options
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 |
commit | afb60d9f6d59816fb4e3e1986ab5d2f29f5603fc (patch) | |
tree | 71280b9b1c895e547d41eaee97e80f4e44c7c7bd | |
parent | c5c6c90d0fed8ab83bafecb8ea80288286f8ca85 (diff) | |
download | Ishtar-afb60d9f6d59816fb4e3e1986ab5d2f29f5603fc.tar.bz2 Ishtar-afb60d9f6d59816fb4e3e1986ab5d2f29f5603fc.zip |
Manage instanciation of wizard (refs #51)
-rw-r--r-- | ishtar/furnitures/forms.py | 23 |
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 |