30 lines
926 B
Python
30 lines
926 B
Python
from crispy_forms.bootstrap import Accordion
|
|
from crispy_forms.layout import Field
|
|
|
|
|
|
class FloatingField(Field):
|
|
template = "bootstrap5/layout/floating_field.html"
|
|
|
|
|
|
class BS5Accordion(Accordion):
|
|
"""
|
|
Bootstrap5 Accordion menu object. It wraps `AccordionGroup` objects in a
|
|
container. It also allows the usage of accordion-flush, introduced in bootstrap5::
|
|
|
|
BS5Accordion(
|
|
AccordionGroup("group name", "form_field_1", "form_field_2"),
|
|
AccordionGroup("another group name", "form_field"),
|
|
flush=True,
|
|
always_open=True
|
|
)
|
|
"""
|
|
|
|
def __init__(self, *args, **kwargs):
|
|
super().__init__(*args, **kwargs)
|
|
self.flush = kwargs.pop("flush", False)
|
|
self.always_open = kwargs.pop("always_open", False)
|
|
|
|
if self.always_open:
|
|
for accordion_group in self.fields:
|
|
accordion_group.always_open = True
|