diff options
Diffstat (limited to 'ishtar/furnitures/forms.py')
-rw-r--r-- | ishtar/furnitures/forms.py | 68 |
1 files changed, 40 insertions, 28 deletions
diff --git a/ishtar/furnitures/forms.py b/ishtar/furnitures/forms.py index b78a06644..08fb912a7 100644 --- a/ishtar/furnitures/forms.py +++ b/ishtar/furnitures/forms.py @@ -24,13 +24,15 @@ import datetime from django.core.urlresolvers import reverse from django.utils.translation import ugettext_lazy as _ -from django.template import Context +from django.template import Context, RequestContext 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 +from formwizard.forms import NamedUrlSessionFormWizard + import models import widgets from ishtar import settings @@ -39,34 +41,37 @@ from django.utils.functional import lazy reverse_lazy = lazy(reverse, unicode) -class Step(BasicStep): - """ - Add a label to steps - """ - def __init__(self, idx, label, form): - self.label = label - super(Step, self).__init__(idx, form) - -class Wizard(SessionWizard): - def process_show_form(self, request, step, form): +class Wizard(NamedUrlSessionFormWizard): + def get_template_context(self, request, storage, form=None): + context = super(Wizard, self).get_template_context(request, storage, + form) + step = self.get_first_step(request, storage) + current_step = storage.get_current_step() + context.update({'current_step':self.form_list[current_step]}) + if step == current_step: + return context previous_steps = [] - for stp in self.base_steps: - if stp == step: - return Context({'previous_steps':previous_steps, - 'current_step':stp}) - previous_steps.append(stp) - return Context({'previous_steps':previous_steps}) + while step: + if step == current_step: + context.update({'previous_steps':previous_steps}) + return context + else: + previous_steps.append(self.form_list[step]) + step = self.get_next_step(request, storage, step) + context.update({'previous_steps':previous_steps}) + return context class FileWizard(Wizard): - def get_template(self, request, step, form): - return ['file_wizard_%s.html' % step, - 'file_wizard.html'] - - def done(self, request, form_list): - return render_to_response('done.html', { - 'form_data': [form.cleaned_data for form in form_list], - }) - + def get_template(self, request, form): + return ['file_wizard.html'] + + def done(self, request, storage, form_list): + return render_to_response( + 'file_done.html', + {'form_list': [form.cleaned_data for form in form_list]}, + context_instance=RequestContext(request) + ) + """ def process_step(self, request, step, form): if models.PREVENTIVE and 'file_type' in form.cleaned_data: file_type = int(form.cleaned_data['file_type']) @@ -79,9 +84,10 @@ class FileWizard(Wizard): else: preventive_step = self.get_step(request, 'preventive') self.remove_step(request, preventive_step) - +""" class FileForm1(forms.Form): + form_label = _("General") in_charge = forms.IntegerField(label=_("Person in charge"), widget=widgets.JQueryAutoComplete(reverse_lazy('autocomplete-person'), associated_model=models.Person), @@ -97,8 +103,8 @@ class FileForm1(forms.Form): comment = forms.CharField(label=_(u"Comment"), widget=forms.Textarea, required=False) - class FileForm2(forms.Form): + form_label = _("Address") town = forms.IntegerField(label=_(u"Town"), widget=widgets.JQueryAutoComplete(reverse_lazy('autocomplete-town'), associated_model=models.Town), @@ -106,7 +112,9 @@ class FileForm2(forms.Form): total_surface = forms.IntegerField(label=_("Total surface")) address = forms.CharField(label=_(u"Address"), widget=forms.Textarea) + class FileForm3(forms.Form): + form_label = _("Preventive informations") general_contractor = forms.IntegerField(label=_(u"General contractor"), widget=widgets.JQueryAutoComplete( reverse_lazy('autocomplete-organization'), @@ -118,3 +126,7 @@ class FileForm3(forms.Form): saisine_type = forms.ChoiceField(label=_("Saisine type"), choices=models.SaisineType.get_types()) reception_date = forms.DateField(label=_(u"Reception date")) + +file_creation_wizard = FileWizard([FileForm1, FileForm2, FileForm3], + url_name='file_creation') + |