summaryrefslogtreecommitdiff
path: root/ishtar_common/forms.py
diff options
context:
space:
mode:
Diffstat (limited to 'ishtar_common/forms.py')
-rw-r--r--ishtar_common/forms.py15
1 files changed, 12 insertions, 3 deletions
diff --git a/ishtar_common/forms.py b/ishtar_common/forms.py
index 55ba9da7b..1804e9c7b 100644
--- a/ishtar_common/forms.py
+++ b/ishtar_common/forms.py
@@ -706,9 +706,10 @@ class FieldType:
return self.model.get_help(**args)
-class FormHeader(object):
- def __init__(self, label, level=4, collapse=False, help_message=""):
+class FormHeader:
+ def __init__(self, label, level=4, collapse=False, help_message="", slug=""):
self.label = label
+ self.slug = slug or slugify(label)
self.collapse = collapse
self.level = level
self.help_message = help_message
@@ -853,7 +854,15 @@ class IshtarForm(BSForm, forms.Form):
def get_headers(self):
if self._headers:
return self._headers
- return self.HEADERS
+ self._headers = self.HEADERS
+ # if key is not available or header already used remove it
+ used = []
+ for k in self._headers.keys():
+ if k not in self.fields or self._headers[k].slug in used:
+ self._headers.pop(k)
+ continue
+ used.append(self._headers[k].slug)
+ return self._headers
def headers(self, key):
headers = self.get_headers()