From 8b3347dd635eef93e7af1a71c4183630277a7f5f Mon Sep 17 00:00:00 2001 From: Étienne Loks Date: Thu, 7 Jun 2018 16:52:02 +0200 Subject: Document form: add related fields (refs #4107) --- ishtar_common/forms.py | 47 +++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 43 insertions(+), 4 deletions(-) (limited to 'ishtar_common/forms.py') diff --git a/ishtar_common/forms.py b/ishtar_common/forms.py index 59f3e141a..b0f1920df 100644 --- a/ishtar_common/forms.py +++ b/ishtar_common/forms.py @@ -33,6 +33,7 @@ from django.forms.formsets import BaseFormSet, DELETION_FIELD_NAME from django.utils import formats, translation from django.utils.functional import lazy from django.utils.safestring import mark_safe +from django.utils.text import slugify from django.utils.translation import ugettext_lazy as _ from bootstrap_datepicker.widgets import DatePicker, DATE_FORMAT, DateField @@ -356,14 +357,46 @@ class FieldType(object): class FormHeader(object): - def __init__(self, label, level=4): + def __init__(self, label, level=4, collapse=False): self.label = label + self.collapse = collapse + if collapse: + level = 5 self.level = level def render(self): - return mark_safe(u"{label}".format( - label=self.label, level=self.level - )) + if not self.collapse: + return mark_safe(u"{label}".format( + label=self.label, level=self.level + )) + html = u"""
+
+
+ + + +
+ +
+
+""".format(label=self.label, slug=slugify(self.label), level=self.level) + return mark_safe(html) + + def render_end(self): + if not self.collapse: + return "" + return mark_safe(u""" +
+
+
+
""") class IshtarForm(forms.Form): @@ -404,6 +437,12 @@ class IshtarForm(forms.Form): self.fields[field.key].choices = field.get_choices() self.fields[field.key].help_text = field.get_help() + def headers(self, key): + if key not in self.HEADERS: + return + self.current_header = self.HEADERS[key] + return self.current_header + class TableSelect(IshtarForm): def __init__(self, *args, **kwargs): -- cgit v1.2.3