Skip to content

Commit 7615af7

Browse files
author
Dylan Verheul
committed
Merge pull request zostera#276 from gordon-/css_class_fix
CSS classes arguments passed to the bootstrap_form are now working
2 parents 7c29b9a + a68e370 commit 7615af7

File tree

2 files changed

+57
-6
lines changed

2 files changed

+57
-6
lines changed

bootstrap3/renderers.py

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -151,6 +151,9 @@ def __init__(self, form, *args, **kwargs):
151151
# Handle form.empty_permitted
152152
if self.form.empty_permitted:
153153
self.set_required = False
154+
self.error_css_class = kwargs.get('error_css_class', None)
155+
self.required_css_class = kwargs.get('required_css_class', None)
156+
self.bound_css_class = kwargs.get('bound_css_class', None)
154157

155158
def render_fields(self):
156159
rendered_fields = []
@@ -169,6 +172,9 @@ def render_fields(self):
169172
size=self.size,
170173
horizontal_label_class=self.horizontal_label_class,
171174
horizontal_field_class=self.horizontal_field_class,
175+
error_css_class=self.error_css_class,
176+
required_css_class=self.required_css_class,
177+
bound_css_class=self.bound_css_class,
172178
))
173179
return '\n'.join(rendered_fields)
174180

@@ -232,22 +238,22 @@ def __init__(self, field, *args, **kwargs):
232238

233239
# These are set in Django or in the global BOOTSTRAP3 settings, and
234240
# they can be overwritten in the template
235-
error_css_class = kwargs.get('error_css_class', '')
236-
required_css_class = kwargs.get('required_css_class', '')
237-
bound_css_class = kwargs.get('bound_css_class', '')
238-
if error_css_class:
241+
error_css_class = kwargs.get('error_css_class', None)
242+
required_css_class = kwargs.get('required_css_class', None)
243+
bound_css_class = kwargs.get('bound_css_class', None)
244+
if error_css_class is not None:
239245
self.error_css_class = error_css_class
240246
else:
241247
self.error_css_class = getattr(
242248
field.form, 'error_css_class',
243249
get_bootstrap_setting('error_css_class'))
244-
if required_css_class:
250+
if required_css_class is not None:
245251
self.required_css_class = required_css_class
246252
else:
247253
self.required_css_class = getattr(
248254
field.form, 'required_css_class',
249255
get_bootstrap_setting('required_css_class'))
250-
if bound_css_class:
256+
if bound_css_class is not None:
251257
self.success_css_class = bound_css_class
252258
else:
253259
self.success_css_class = getattr(

bootstrap3/tests.py

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -290,6 +290,51 @@ def test_buttons_tag(self):
290290
self.assertIn('col-md-3', res)
291291
self.assertIn('col-md-9', res)
292292

293+
def test_error_class(self):
294+
form = TestForm({'sender': 'sender'})
295+
res = render_template('{% bootstrap_form form %}', form=form)
296+
self.assertIn('bootstrap3-err', res)
297+
298+
res = render_template(
299+
'{% bootstrap_form form error_css_class="successful-test" %}',
300+
form=form
301+
)
302+
self.assertIn('successful-test', res)
303+
304+
res = render_template('{% bootstrap_form form error_css_class="" %}',
305+
form=form)
306+
self.assertNotIn('bootstrap3-err', res)
307+
308+
def test_required_class(self):
309+
form = TestForm({'sender': 'sender'})
310+
res = render_template('{% bootstrap_form form %}', form=form)
311+
self.assertIn('bootstrap3-req', res)
312+
313+
res = render_template(
314+
'{% bootstrap_form form required_css_class="successful-test" %}',
315+
form=form
316+
)
317+
self.assertIn('successful-test', res)
318+
319+
res = render_template('{% bootstrap_form form required_css_class="" %}',
320+
form=form)
321+
self.assertNotIn('bootstrap3-req', res)
322+
323+
def test_bound_class(self):
324+
form = TestForm({'sender': 'sender'})
325+
res = render_template('{% bootstrap_form form %}', form=form)
326+
self.assertIn('bootstrap3-bound', res)
327+
328+
res = render_template(
329+
'{% bootstrap_form form bound_css_class="successful-test" %}',
330+
form=form
331+
)
332+
self.assertIn('successful-test', res)
333+
334+
res = render_template('{% bootstrap_form form bound_css_class="" %}',
335+
form=form)
336+
self.assertNotIn('bootstrap3-bound', res)
337+
293338

294339
class FieldTest(TestCase):
295340
def test_illegal_field(self):

0 commit comments

Comments
 (0)