diff options
-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): |