From 3eaca5bc8ad0e4d5c2254f05d817998ae80c9194 Mon Sep 17 00:00:00 2001 From: Étienne Loks Date: Fri, 13 Jun 2025 16:07:27 +0200 Subject: 🐛 forms headers: manage header with conditionnal fields - find bulk update fix header (refs #6352) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ishtar_common/forms.py | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) (limited to 'ishtar_common/forms.py') 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() -- cgit v1.2.3