diff options
author | Étienne Loks <etienne.loks@peacefrogs.net> | 2013-04-05 00:33:07 +0200 |
---|---|---|
committer | Étienne Loks <etienne.loks@peacefrogs.net> | 2013-04-05 00:33:07 +0200 |
commit | e51684c2adb656d3ef14e40e649e280a6c0bf1b8 (patch) | |
tree | a2c624b1ce76c6d57a8a156766e4863710d8ae19 /ishtar_common | |
parent | c5e94062adefdd8cb0aeb730830921d5d546a86b (diff) | |
download | Ishtar-e51684c2adb656d3ef14e40e649e280a6c0bf1b8.tar.bz2 Ishtar-e51684c2adb656d3ef14e40e649e280a6c0bf1b8.zip |
UI improvment for parcels management (refs #151)
Diffstat (limited to 'ishtar_common')
-rw-r--r-- | ishtar_common/widgets.py | 2 | ||||
-rw-r--r-- | ishtar_common/wizards.py | 21 |
2 files changed, 17 insertions, 6 deletions
diff --git a/ishtar_common/widgets.py b/ishtar_common/widgets.py index 1fd0b6ac0..06d6f20f0 100644 --- a/ishtar_common/widgets.py +++ b/ishtar_common/widgets.py @@ -206,7 +206,7 @@ class JQueryJqGrid(forms.RadioSelect): self.source_full = source_full
def render(self, name, value=None, attrs=None):
- t = loader.get_template('form_snippet.html')
+ t = loader.get_template('blocks/form_snippet.html')
rendered = t.render(Context({'form':self.form}))
rendered += u"\n</table>\n"\
u"<button id='search_%s' class='submit'>%s</button>" % (
diff --git a/ishtar_common/wizards.py b/ishtar_common/wizards.py index 8b6e1a50d..e421c25dd 100644 --- a/ishtar_common/wizards.py +++ b/ishtar_common/wizards.py @@ -1,6 +1,6 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (C) 2010-2012 Étienne Loks <etienne.loks_AT_peacefrogsDOTnet> +# Copyright (C) 2010-2013 Étienne Loks <etienne.loks_AT_peacefrogsDOTnet> # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as @@ -461,15 +461,26 @@ class Wizard(NamedUrlWizardView): k = u'-'.join(items) data[k] = data.pop(key)[0] # get a form key - base_key = form.form.base_fields.keys()[0] - init = self.get_form_initial(step) + frm = form.form + if callable(frm): + frm = frm() + base_key = frm.base_fields.keys()[-1] + init = self.get_form_initial(step, data=data) total_field = len([key for key in data.keys() if base_key in key.split('-') and data[key]]) - if init and not to_delete: + if init and not to_delete and ( + not hasattr(self, 'form_initialized') or + not self.form_initialized): total_field = max((total_field, len(init))) data[step + u'-INITIAL_FORMS'] = unicode(total_field) data[step + u'-TOTAL_FORMS'] = unicode(total_field + 1) + # 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] data = data or None form = super(Wizard, self).get_form(step, data, files) return form @@ -561,7 +572,7 @@ class Wizard(NamedUrlWizardView): pass return current_obj - def get_form_initial(self, step): + def get_form_initial(self, step, data=None): current_obj = self.get_current_object() current_step = self.steps.current request = self.request |