django-bs

Bootstrap integration for django using widget templates
git clone https://git.ce9e.org/django-bs.git

commit
91db84b43b65898b57e4add693cd734493342ec0
parent
e6bc74869d2803df140025989421484805393b7a
Author
Tobias Bengfort <tobias.bengfort@posteo.de>
Date
2025-09-15 15:09
refactor: assemble label classes in python

Diffstat

M django_bs/templates/bs/field.html 6 +++---
M django_bs/templatetags/bootstrap.py 7 ++++++-

2 files changed, 9 insertions, 4 deletions


diff --git a/django_bs/templates/bs/field.html b/django_bs/templates/bs/field.html

@@ -1,12 +1,12 @@
    1     1 <{{ fieldset|yesno:'fieldset,div' }} class="{{ form_group_class }} {% if check %}form-check{% endif %}">
    2     2     {% if check %}
    3     3         {{ field }}
    4    -1         <label for="{{ field.id_for_label }}" class="form-check-label {% if field.field.required %}{{ field.form.required_css_class }}{% endif %} {% if not show_label %}visually-hidden{% endif %}">{{ field.label }}</label>
   -1     4         <label for="{{ field.id_for_label }}" class="form-check-label {{ label_classes }}">{{ field.label }}</label>
    5     5     {% else %}
    6     6         {% if fieldset %}
    7    -1             <legend class="form-label fs-6 {% if field.field.required %}{{ field.form.required_css_class }}{% endif %} {% if not show_label %}visually-hidden{% endif %}">{{ field.label }}</legend>
   -1     7             <legend class="form-label fs-6 {{ label_classes }}">{{ field.label }}</legend>
    8     8         {% else %}
    9    -1             <label class="form-label {% if field.field.required %}{{ field.form.required_css_class }}{% endif %} {% if not show_label %}visually-hidden{% endif %}" for="{{ field.id_for_label }}">{{ field.label }}</label>
   -1     9             <label class="form-label {{ label_classes }}" for="{{ field.id_for_label }}">{{ field.label }}</label>
   10    10         {% endif %}
   11    11         {% if addon_before or addon_after %}
   12    12             <div class="input-group">

diff --git a/django_bs/templatetags/bootstrap.py b/django_bs/templatetags/bootstrap.py

@@ -57,13 +57,18 @@ def bootstrap_field(
   57    57     widget = boundfield.field.widget
   58    58     is_check = getattr(widget, 'input_type', None) in ['checkbox', 'radio']
   59    59     has_options = getattr(widget, 'option_template_name', None)
   -1    60     label_classes = set()
   -1    61     if not show_label:
   -1    62         label_classes.add('visually-hidden')
   -1    63     if boundfield.field.required:
   -1    64         label_classes.add(getattr(boundfield.form, 'required_css_class', ''))
   60    65     return {
   61    66         'field': boundfield,
   62    67         'check': is_check and not has_options,
   63    68         'fieldset': getattr(widget, 'use_fieldset', is_check and has_options),
   64    69         'addon_before': addon_before,
   65    70         'addon_after': addon_after,
   66    -1         'show_label': show_label,
   -1    71         'label_classes': ' '.join(label_classes),
   67    72         'form_group_class': form_group_class,
   68    73     }
   69    74