Skip to content

Commit

Permalink
Improve support for floating labels
Browse files Browse the repository at this point in the history
  • Loading branch information
dyve committed Apr 25, 2021
1 parent d1f0fc4 commit 481dc06
Show file tree
Hide file tree
Showing 9 changed files with 342 additions and 284 deletions.
4 changes: 4 additions & 0 deletions CHANGELOG.md
@@ -1,5 +1,9 @@
# Changelog

## [0.6.0] - In development

- Add support for floating labels on input types `date`, `time`, `url`, `email`, `tel`.

## [0.5.0] - 2021-04-23

- Fix pagination support.
Expand Down
2 changes: 1 addition & 1 deletion setup.py
Expand Up @@ -13,7 +13,7 @@
setup(
name="django-bootstrap5",
zip_safe=False,
version="0.5.0",
version="0.6.0b0",
description="Bootstrap 5 for Django",
long_description=README,
long_description_content_type="text/markdown",
Expand Down
11 changes: 10 additions & 1 deletion src/django_bootstrap5/renderers.py
Expand Up @@ -286,7 +286,16 @@ def get_widget_input_type(self, widget):
def can_widget_float(self, widget):
"""Return whether given widget can be set to `form-floating` behavior."""
if isinstance(widget, (TextInput, NumberInput, EmailInput, URLInput, PasswordInput)):
return self.get_widget_input_type(widget) in ["text", "number", "email", "url", "password", "date"]
return self.get_widget_input_type(widget) in [
"text",
"number",
"email",
"url",
"tel",
"date",
"time",
"password",
]
if isinstance(widget, Textarea):
return True
if isinstance(widget, Select):
Expand Down
282 changes: 0 additions & 282 deletions tests/test_bootstrap_field_input.py

This file was deleted.

55 changes: 55 additions & 0 deletions tests/test_bootstrap_field_input_checkbox.py
@@ -0,0 +1,55 @@
from django import forms

from tests.base import BootstrapTestCase


class CheckboxTestForm(forms.Form):
test = forms.BooleanField()


class InputTypeCheckboxTestCase(BootstrapTestCase):
def test_input_type_checkbox(self):
"""Test field with checkbox widget."""
self.assertHTMLEqual(
self.render("{% bootstrap_field form.test %}", context={"form": CheckboxTestForm()}),
(
'<div class="django_bootstrap5-req mb-3">'
'<div class="form-check">'
'<input class="form-check-input" id="id_test" name="test" required type="checkbox">'
'<label class="form-check-label" for="id_test">'
"Test"
"</label>"
),
)

def test_input_type_checkbox_style_switch(self):
"""Test field with checkbox widget, style switch."""
self.assertHTMLEqual(
self.render(
'{% bootstrap_field form.test checkbox_style="switch" %}', context={"form": CheckboxTestForm()}
),
(
'<div class="django_bootstrap5-req mb-3">'
'<div class="form-check form-switch">'
'<input class="form-check-input" id="id_test" name="test" required type="checkbox">'
'<label class="form-check-label" for="id_test">'
"Test"
"</label>"
),
)

def test_bootstrap_field_checkbox_horizontal(self):
"""Test field with checkbox widget, layout horizontal."""
self.assertHTMLEqual(
self.render("{% bootstrap_field form.test layout='horizontal' %}", context={"form": CheckboxTestForm()}),
(
'<div class="django_bootstrap5-req mb-3 row">'
'<div class="col-sm-10 offset-sm-2">'
'<div class="form-check">'
'<input class="form-check-input" id="id_test" name="test" required type="checkbox">'
'<label class="form-check-label" for="id_test">'
"Test"
"</label>"
"</div>"
),
)

0 comments on commit 481dc06

Please sign in to comment.