Improvements for Bootstrap 3.0 support. Includes:

- Fixed problem with inputs of type file, that were displayed inside an input text element
- Added support for Django Form `required_css_class` and `error_css_class`
- Added CSS class `multiple-checkbox`, to be used to easily hide `<li>` elements in multiple checkboxes from your styles file
This commit is contained in:
Enric Caumons 2013-09-10 01:50:41 +02:00
parent 5ebe181be1
commit 1fd37c1631
2 changed files with 16 additions and 11 deletions

View File

@ -4,12 +4,12 @@
{% if field|is_checkbox %}
<div class="{{ classes.single_value }}">
<div class="checkbox">
<label>
<label {% if field.field.required and form.required_css_class %}class="{{ form.required_css_class }}"{% endif %}>
{{ field }} <span>{{ field.label }}</span>
</label>
{% for error in field.errors %}
<span class="help-block">{{ error }}</span>
<span class="help-block {{ form.error_css_class }}">{{ error }}</span>
{% endfor %}
{% if field.help_text %}
@ -19,8 +19,8 @@
{% endif %}
</div>
</div>
{% else %}{% if field|is_radio %}
<label class="control-label {{ classes.label }}">{{ field.label }}</label>
{% elif field|is_radio %}
<label class="control-label {{ classes.label }} {% if field.field.required %}{{ form.required_css_class }}{% endif %}">{{ field.label }}</label>
<div class="{{ classes.value }}">
{% for choice in field %}
@ -33,7 +33,7 @@
{% endfor %}
{% for error in field.errors %}
<span class="help-block">{{ error }}</span>
<span class="help-block {{ form.error_css_class }}">{{ error }}</span>
{% endfor %}
{% if field.help_text %}
@ -42,15 +42,14 @@
</p>
{% endif %}
</div>
{% else %}
<label class="control-label {{ classes.label }}" for="{{ field.auto_id }}">{{ field.label }}</label>
<label class="control-label {{ classes.label }} {% if field.field.required %}{{ form.required_css_class }}{% endif %}" for="{{ field.auto_id }}">{{ field.label }}</label>
<div class="{{ classes.value }}">
<div class="{{ classes.value }} {% if field|is_multiple_checkbox %}multiple-checkbox{% endif %}">
{{ field }}
{% for error in field.errors %}
<span class="help-block">{{ error }}</span>
<span class="help-block {{ form.error_css_class }}">{{ error }}</span>
{% endfor %}
{% if field.help_text %}
@ -59,5 +58,5 @@
</p>
{% endif %}
</div>
{% endif %}{% endif %}
{% endif %}
</div>

View File

@ -48,7 +48,8 @@ def bootstrap_horizontal(element, label_cols={}):
def add_input_classes(field):
if not is_checkbox(field) and not is_multiple_checkbox(field) and not is_radio(field):
if not is_checkbox(field) and not is_multiple_checkbox(field) and not is_radio(field) \
and not is_file(field):
field_classes = field.field.widget.attrs.get('class', '')
field_classes += ' form-control'
field.field.widget.attrs['class'] = field_classes
@ -93,3 +94,8 @@ def is_multiple_checkbox(field):
@register.filter
def is_radio(field):
return field.field.widget.__class__.__name__.lower() == "radioselect"
@register.filter
def is_file(field):
return field.field.widget.__class__.__name__.lower() == "clearablefileinput"