summaryrefslogtreecommitdiff
path: root/ishtar_common
diff options
context:
space:
mode:
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
commit428edb87d3f9502c02d048bd1f3043b27f7b0463 (patch)
tree9f732ee9faa9b2465ccdb09d588479e99e4af23f /ishtar_common
parent4a734f035eefcc97684fea7f3d25a136a25d10ec (diff)
downloadIshtar-428edb87d3f9502c02d048bd1f3043b27f7b0463.tar.bz2
Ishtar-428edb87d3f9502c02d048bd1f3043b27f7b0463.zip
Fix custom field placement
Diffstat (limited to 'ishtar_common')
-rw-r--r--ishtar_common/forms.py18
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):