diff options
author | Étienne Loks <etienne.loks@iggdrasil.net> | 2018-08-23 10:56:21 +0200 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2018-08-23 10:56:21 +0200 |
commit | 428edb87d3f9502c02d048bd1f3043b27f7b0463 (patch) | |
tree | 9f732ee9faa9b2465ccdb09d588479e99e4af23f /ishtar_common/forms.py | |
parent | 4a734f035eefcc97684fea7f3d25a136a25d10ec (diff) | |
download | Ishtar-428edb87d3f9502c02d048bd1f3043b27f7b0463.tar.bz2 Ishtar-428edb87d3f9502c02d048bd1f3043b27f7b0463.zip |
Fix custom field placement
Diffstat (limited to 'ishtar_common/forms.py')
-rw-r--r-- | ishtar_common/forms.py | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/ishtar_common/forms.py b/ishtar_common/forms.py index c1e699ab5..fe8dbb82b 100644 --- a/ishtar_common/forms.py +++ b/ishtar_common/forms.py @@ -154,12 +154,22 @@ class CustomForm(object): # re-order for json fields fields = OrderedDict() - for idx, field in enumerate(self.fields.items()): + field_items = [ + (key, field) for key, field in self.fields.items() + if not getattr(field.widget, 'is_hidden', None) + ] + for idx, field in enumerate(field_items): + idx = (idx + 1) * 10 key, c_field = field - if idx + 1 in new_fields: - alt_key, alt_field = new_fields[idx + 1] - fields[alt_key] = alt_field + for k in sorted(new_fields.keys()): + if idx - 10 <= k < idx: + alt_key, alt_field = new_fields.pop(k) + fields[alt_key] = alt_field fields[key] = c_field + for k in sorted(new_fields.keys()): + alt_key, alt_field = new_fields.pop(k) + fields[alt_key] = alt_field + self.fields = fields def are_available(self, keys): |