diff options
author | Étienne Loks <etienne.loks@peacefrogs.net> | 2010-12-29 10:58:46 +0100 |
---|---|---|
committer | Étienne Loks <etienne.loks@peacefrogs.net> | 2010-12-29 10:58:46 +0100 |
commit | f1eca7a1eef6a2ff8bb87c4626001c231eb4c8fd (patch) | |
tree | 7856604c8fa5601a1b29adc0f1161501c33e0c7e /ishtar/furnitures/forms.py | |
parent | 537b4b443b5e9232a90b506c804c52ea0ed396ba (diff) | |
download | Ishtar-f1eca7a1eef6a2ff8bb87c4626001c231eb4c8fd.tar.bz2 Ishtar-f1eca7a1eef6a2ff8bb87c4626001c231eb4c8fd.zip |
Integration of session wizard (refs #51)
Diffstat (limited to 'ishtar/furnitures/forms.py')
-rw-r--r-- | ishtar/furnitures/forms.py | 32 |
1 files changed, 25 insertions, 7 deletions
diff --git a/ishtar/furnitures/forms.py b/ishtar/furnitures/forms.py index 4c3efa33a..077964484 100644 --- a/ishtar/furnitures/forms.py +++ b/ishtar/furnitures/forms.py @@ -21,26 +21,44 @@ Forms definition """ from django.utils.translation import ugettext_lazy as _ -from wizard import FormWizard +from django.template import Context from django.shortcuts import render_to_response from django import forms +from merlin.wizards.utils import Step as BasicStep +from merlin.wizards.session import SessionWizard + import models +class Step(BasicStep): + """ + Add a label to steps + """ + def __init__(self, idx, label, form): + self.label = label + super(Step, self).__init__(idx, form) + class FileForm1(forms.Form): subject = forms.CharField(max_length=100) sender = forms.EmailField() -class FileForm2(forms.ModelForm): - fields = ('towns',) - class Meta: - model = models.File +class FileForm2(forms.Form): + subject2 = forms.CharField(max_length=100) + sender2 = forms.EmailField() -class FileWizard(FormWizard): - def get_template(self, step): +class FileWizard(SessionWizard): + def get_template(self, request, step, form): return ['templates/file_wizard_%s.html' % step, 'file_wizard.html'] + def process_show_form(self, request, step, form): + previous_steps = [] + for stp in self.base_steps: + if stp == step: + return Context({'previous_steps':previous_steps}) + previous_steps.append(stp) + return Context({'previous_steps':previous_steps}) + def done(self, request, form_list): return render_to_response('done.html', { 'form_data': [form.cleaned_data for form in form_list], |