From 428edb87d3f9502c02d048bd1f3043b27f7b0463 Mon Sep 17 00:00:00 2001 From: Étienne Loks Date: Thu, 23 Aug 2018 10:56:21 +0200 Subject: Fix custom field placement --- ishtar_common/forms.py | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) (limited to 'ishtar_common/forms.py') 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): -- cgit v1.2.3