Skip to content

Commit 3092d19

Browse files
committed
Remove support for set_required and set_disabled (fixes zostera#337, #fixes zostera#345)
1 parent 5cbd723 commit 3092d19

File tree

8 files changed

+15
-57
lines changed

8 files changed

+15
-57
lines changed

HISTORY.rst

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,9 @@ History
66
Develop
77
+++++++
88

9+
* Remove everything to do with setting HTML `required` attribute (#337)
10+
* Remove everything to do with setting HTML `disabled` attribute (#345)
11+
* Fix warnings during install (thanks @mfcovington)
912
* Add subresource integrity to external components (thanks @mfcovington and @Alex131089)
1013

1114

bootstrap3/bootstrap.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,6 @@
1616
'include_jquery': False,
1717
'horizontal_label_class': 'col-md-3',
1818
'horizontal_field_class': 'col-md-9',
19-
'set_required': True,
20-
'set_disabled': False,
2119
'set_placeholder': True,
2220
'required_css_class': '',
2321
'error_css_class': 'has-error',

bootstrap3/forms.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -164,8 +164,6 @@ def is_widget_required_attribute(widget):
164164
"""
165165
Is this widget required?
166166
"""
167-
if not get_bootstrap_setting('set_required'):
168-
return False
169167
if not widget.is_required:
170168
return False
171169
if isinstance(

bootstrap3/renderers.py

Lines changed: 0 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -36,8 +36,6 @@ def __init__(self, *args, **kwargs):
3636
self.show_help = kwargs.get('show_help', True)
3737
self.show_label = kwargs.get('show_label', True)
3838
self.exclude = kwargs.get('exclude', '')
39-
self.set_required = kwargs.get('set_required', True)
40-
self.set_disabled = kwargs.get('set_disabled', False)
4139
self.size = self.parse_size(kwargs.get('size', ''))
4240
self.horizontal_label_class = kwargs.get(
4341
'horizontal_label_class',
@@ -102,8 +100,6 @@ def render_forms(self):
102100
show_label=self.show_label,
103101
show_help=self.show_help,
104102
exclude=self.exclude,
105-
set_required=self.set_required,
106-
set_disabled=self.set_disabled,
107103
size=self.size,
108104
horizontal_label_class=self.horizontal_label_class,
109105
horizontal_field_class=self.horizontal_field_class,
@@ -147,9 +143,6 @@ def __init__(self, form, *args, **kwargs):
147143
'Parameter "form" should contain a valid Django Form.')
148144
self.form = form
149145
super(FormRenderer, self).__init__(*args, **kwargs)
150-
# Handle form.empty_permitted
151-
if self.form.empty_permitted:
152-
self.set_required = False
153146
self.error_css_class = kwargs.get('error_css_class', None)
154147
self.required_css_class = kwargs.get('required_css_class', None)
155148
self.bound_css_class = kwargs.get('bound_css_class', None)
@@ -166,8 +159,6 @@ def render_fields(self):
166159
show_label=self.show_label,
167160
show_help=self.show_help,
168161
exclude=self.exclude,
169-
set_required=self.set_required,
170-
set_disabled=self.set_disabled,
171162
size=self.size,
172163
horizontal_label_class=self.horizontal_label_class,
173164
horizontal_field_class=self.horizontal_field_class,
@@ -269,11 +260,8 @@ def __init__(self, field, *args, **kwargs):
269260

270261
# Handle form.empty_permitted
271262
if self.field.form.empty_permitted:
272-
self.set_required = False
273263
self.required_css_class = ''
274264

275-
self.set_disabled = kwargs.get('set_disabled', False)
276-
277265
def restore_widget_attrs(self):
278266
self.widget.attrs = self.initial_attrs.copy()
279267

@@ -307,18 +295,6 @@ def add_help_attrs(self, widget=None):
307295
escape(strip_tags(self.field_help))
308296
)
309297

310-
def add_required_attrs(self, widget=None):
311-
if widget is None:
312-
widget = self.widget
313-
if self.set_required and is_widget_required_attribute(widget):
314-
widget.attrs['required'] = 'required'
315-
316-
def add_disabled_attrs(self, widget=None):
317-
if widget is None:
318-
widget = self.widget
319-
if self.set_disabled:
320-
widget.attrs['disabled'] = 'disabled'
321-
322298
def add_widget_attrs(self):
323299
if self.is_multi_widget:
324300
widgets = self.widget.widgets
@@ -328,8 +304,6 @@ def add_widget_attrs(self):
328304
self.add_class_attrs(widget)
329305
self.add_placeholder_attrs(widget)
330306
self.add_help_attrs(widget)
331-
self.add_required_attrs(widget)
332-
self.add_disabled_attrs(widget)
333307

334308
def list_to_class(self, html, klass):
335309
classes = add_css_class(klass, self.get_size_class())

bootstrap3/templatetags/bootstrap3.py

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -406,17 +406,6 @@ def bootstrap_field(*args, **kwargs):
406406
exclude
407407
A list of field names that should not be rendered
408408
409-
set_required
410-
When set to ``True`` and the field is required then the ``required`` attribute is set on the
411-
rendered field
412-
413-
:default: ``True``
414-
415-
set_disabled
416-
When set to ``True`` then the ``disabled`` attribute is set on the rendered field.
417-
418-
:default: ``False``
419-
420409
size
421410
Controls the size of the rendered ``div.form-group`` through the use of CSS classes.
422411

bootstrap3/tests.py

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -397,28 +397,31 @@ def test_password(self):
397397
self.assertIn('placeholder="Password"', res)
398398

399399
def test_required_field(self):
400+
"""
401+
Does a required field get the CSS class for required?
402+
"""
403+
required_css_class='bootstrap3-req'
400404
required_field = render_form_field('subject')
401-
self.assertIn('required', required_field)
402-
self.assertIn('bootstrap3-req', required_field)
405+
self.assertIn(required_css_class, required_field)
403406
not_required_field = render_form_field('message')
404-
self.assertNotIn('required', not_required_field)
405-
# Required field with required=0
406-
form_field = 'form.subject'
407-
rendered = render_template_with_form('{% bootstrap_field ' + form_field + ' set_required=0 %}')
408-
self.assertNotIn('required', rendered)
407+
self.assertNotIn(required_css_class, not_required_field)
409408
# Required settings in field
410409
form_field = 'form.subject'
411410
rendered = render_template_with_form(
412411
'{% bootstrap_field ' + form_field + ' required_css_class="test-required" %}')
413412
self.assertIn('test-required', rendered)
414413

415414
def test_empty_permitted(self):
415+
"""
416+
If a form has empty_permitted, no fields should get the CSS class for required
417+
"""
418+
required_css_class='bootstrap3-req'
416419
form = TestForm()
417420
res = render_form_field('subject', {'form': form})
418-
self.assertIn('required', res)
421+
self.assertIn(required_css_class, res)
419422
form.empty_permitted = True
420423
res = render_form_field('subject', {'form': form})
421-
self.assertNotIn('required', res)
424+
self.assertNotIn(required_css_class, res)
422425

423426
def test_input_group(self):
424427
res = render_template_with_form('{% bootstrap_field form.subject addon_before="$" addon_after=".00" %}')

demo/demo/settings.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -157,7 +157,6 @@
157157

158158
# Settings for django-bootstrap3
159159
BOOTSTRAP3 = {
160-
'set_required': False,
161160
'error_css_class': 'bootstrap3-error',
162161
'required_css_class': 'bootstrap3-required',
163162
'javascript_in_head': True,

docs/settings.rst

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -41,12 +41,6 @@ The ``BOOTSTRAP3`` dict variable contains these settings and defaults:
4141
# Field class to use in horizontal forms
4242
'horizontal_field_class': 'col-md-9',
4343
44-
# Set HTML required attribute on required fields
45-
'set_required': True,
46-
47-
# Set HTML disabled attribute on disabled fields
48-
'set_disabled': False,
49-
5044
# Set placeholder attributes to label if no placeholder is provided
5145
'set_placeholder': True,
5246

0 commit comments

Comments
 (0)