Skip to content

Commit 9a3e43f

Browse files
kosdmitkosyrkovd
andauthored
Add missing css_class to accordion and accordion-group templates (#180)
* Add missing css_class to accordion template * Add missing css_class to accordion-group template Co-authored-by: kosyrkovd <kosyrkov.d@arkhbum.ru>
1 parent c83b224 commit 9a3e43f

File tree

5 files changed

+42
-3
lines changed

5 files changed

+42
-3
lines changed

CHANGELOG.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22

33
## 2024.3 (TBC)
44
* Added support for Django 5.1.
5+
* Fixed `accordion.html` and `accordion-group.html` templates to render `css_class` attribute.
6+
* Dropped support for django-crispy-forms 2.2 and earlier.
57

68
## 2024.2 (2024-02-24)
79

crispy_bootstrap5/templates/bootstrap5/accordion-group.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
<div class="accordion-item">
1+
<div class="accordion-item{% if div.css_class %} {{div.css_class}}{% endif %}">
22
<h2 class="accordion-header">
33
<button class="accordion-button{% if not div.active %} collapsed{% endif %}" type="button" data-bs-toggle="collapse" data-bs-target="#{{ div.css_id }}" aria-expanded="true"
44
aria-controls="{{ div.css_id }}">
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
1-
<div class="accordion{% if accordion.flush %} accordion-flush{% endif %}" id="{{ accordion.css_id }}">
1+
<div class="accordion{% if accordion.flush %} accordion-flush{% endif %}{% if accordion.css_class %} {{accordion.css_class}}{% endif %}" id="{{ accordion.css_id }}">
22
{{ content|safe }}
33
</div>

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ dynamic = [
3434
]
3535
dependencies = [
3636
"django>=4.2",
37-
"django-crispy-forms>=2",
37+
"django-crispy-forms>=2.3",
3838
]
3939
[project.optional-dependencies]
4040
test = [

tests/test_layout_objects.py

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -274,6 +274,43 @@ def test_accordion_and_accordiongroup(self):
274274
)
275275
assert parse_form(form) == parse_expected("accordion.html")
276276

277+
def test_accordion_css_class_is_applied(self):
278+
classes = 'one two three'
279+
test_form = SampleForm()
280+
test_form.helper = FormHelper()
281+
test_form.helper.form_tag = False
282+
test_form.helper.layout = Layout(
283+
Accordion(
284+
AccordionGroup("one", "first_name"),
285+
css_class=classes,
286+
css_id='super-accordion'
287+
)
288+
)
289+
html = render_crispy_form(test_form)
290+
291+
assert (
292+
html.count('<div class="accordion %s" id="super-accordion"' % classes)
293+
== 1
294+
)
295+
296+
def test_accordion_group_css_class_is_applied(self):
297+
classes = 'one two three'
298+
test_form = SampleForm()
299+
test_form.helper = FormHelper()
300+
test_form.helper.form_tag = False
301+
test_form.helper.layout = Layout(
302+
Accordion(
303+
AccordionGroup("one", "first_name"),
304+
AccordionGroup("two", "password1", "password2", css_class=classes),
305+
)
306+
)
307+
html = render_crispy_form(test_form)
308+
309+
assert (
310+
html.count('<div class="accordion-item %s"' % classes)
311+
== 1
312+
)
313+
277314
def test_accordion_active_false_not_rendered(self):
278315
test_form = SampleForm()
279316
test_form.helper = FormHelper()

0 commit comments

Comments
 (0)