diff options
author | Étienne Loks <etienne.loks@peacefrogs.net> | 2013-09-03 01:16:03 +0200 |
---|---|---|
committer | Étienne Loks <etienne.loks@peacefrogs.net> | 2013-09-03 01:16:03 +0200 |
commit | 9adaefe417595189b37cd8e73fae4cc860d7c0f8 (patch) | |
tree | 48c2e44e39f4d5e2087af050001f8c3bd8892d1d | |
parent | 06c94878c1525e05523b8dd4b00a7deb48d78ba2 (diff) | |
download | Ishtar-9adaefe417595189b37cd8e73fae4cc860d7c0f8.tar.bz2 Ishtar-9adaefe417595189b37cd8e73fae4cc860d7c0f8.zip |
Wizard: fix deletion management in formsets when number of forms is greater than 10 (refs #809)
-rw-r--r-- | ishtar_common/wizards.py | 20 |
1 files changed, 12 insertions, 8 deletions
diff --git a/ishtar_common/wizards.py b/ishtar_common/wizards.py index b04ef48ee..e1f031818 100644 --- a/ishtar_common/wizards.py +++ b/ishtar_common/wizards.py @@ -456,7 +456,8 @@ class Wizard(NamedUrlWizardView): data.pop(key) if to_delete: # reorganize - for idx, number in enumerate(sorted(not_to_delete)): + for idx, number in enumerate(sorted(not_to_delete, + key=lambda x:int(x))): idx = unicode(idx) if idx == number: continue @@ -481,12 +482,13 @@ class Wizard(NamedUrlWizardView): total_field = max((total_field, len(init))) data[step + u'-INITIAL_FORMS'] = unicode(total_field) data[step + u'-TOTAL_FORMS'] = unicode(total_field + 1) + # TODO:remove form_initialized? # update initialization - if request.POST and init and hasattr(self, 'form_initialized') \ - and self.form_initialized: - for k in init[0]: - data[step + '-' + unicode(total_field) + '-' + k] = \ - init[0][k] + #if request.POST and init and hasattr(self, 'form_initialized') \ + # and self.form_initialized: + # for k in init[0]: + # data[step + '-' + unicode(total_field) + '-' + k] = \ + # init[0][k] data = data or None form = super(Wizard, self).get_form(step, data, files) return form @@ -498,8 +500,10 @@ class Wizard(NamedUrlWizardView): - validate and end: nextstep = last step """ request = self.request - if request.POST.has_key('formset_modify') \ - and request.POST['formset_modify'] \ + if (request.POST.has_key('formset_modify') \ + and request.POST['formset_modify']) \ + or (request.POST.has_key('formset_add') \ + and request.POST['formset_add']) \ or [key for key in request.POST.keys() if key.endswith('DELETE') and request.POST[key]]: return self.render(form) |