summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ishtar/furnitures/forms.py31
-rw-r--r--ishtar/templates/default_wizard.html2
2 files changed, 31 insertions, 2 deletions
diff --git a/ishtar/furnitures/forms.py b/ishtar/furnitures/forms.py
index 3753d5cda..4bcc49324 100644
--- a/ishtar/furnitures/forms.py
+++ b/ishtar/furnitures/forms.py
@@ -140,6 +140,35 @@ class Wizard(NamedUrlSessionFormWizard):
return render_to_response('wizard_done.html', {},
context_instance=RequestContext(request))
+ def get_form(self, request, storage, step=None, data=None, files=None):
+ """
+ Manage formset
+ """
+ if data:
+ data = data.copy()
+ if not step:
+ step = self.determine_step(request, storage)
+ form = self.get_form_list(request, storage)[step]
+ if hasattr(form, 'management_form'):
+ # get a form key
+ base_key = form.form.base_fields.keys()[0]
+ total_field = len([key for key in data.keys()
+ if base_key in key.split('-') and data[key]])
+ data[step + u'-INITIAL_FORMS'] = unicode(total_field)
+ data[step + u'-TOTAL_FORMS'] = unicode(total_field + 1)
+ form = super(Wizard, self).get_form(request, storage, step, data, files)
+ return form
+
+ def render_next_step(self, request, storage, form, **kwargs):
+ """
+ Manage the modify button in formset: next_step = current_step
+ """
+ if request.POST.has_key('formset_modify') and \
+ request.POST['formset_modify']:
+ return self.render(request, storage, form, **kwargs)
+ return super(Wizard, self).render_next_step(request, storage, form,
+ **kwargs)
+
class FileWizard(Wizard):
pass
@@ -174,7 +203,7 @@ class TownForm(forms.Form):
town = forms.IntegerField(label=_(u"Town"),
widget=widgets.JQueryAutoComplete("/" + settings.URL_PATH + \
'autocomplete-town', associated_model=models.Town),
- validators=[models.Town.valid_id])
+ validators=[models.Town.valid_id], required=False)
TownFormSet = formset_factory(TownForm)
TownFormSet.form_label = _("Towns")
diff --git a/ishtar/templates/default_wizard.html b/ishtar/templates/default_wizard.html
index eaf40cc15..59389719e 100644
--- a/ishtar/templates/default_wizard.html
+++ b/ishtar/templates/default_wizard.html
@@ -16,7 +16,7 @@
{% for formsetform in form.forms %}
{{ formsetform.as_table }}
{% endfor %}
- <tr><td rowspan="2"><button name="form_prev_step" value="{{form_step}}">{% trans "Modify" %}</button></td></tr></li>
+ <tr><td rowspan="2"><button name="formset_modify" value="{{form_step}}">{% trans "Modify" %}</button></td></tr></li>
</table>
{% else %}
<table>