@@ -39,25 +39,22 @@ def materializecss(element, options={}):
3939 return render (element , markup_classes )
4040
4141
42- def _add_input_classes_widget (widget , errors ):
43- if not _is_checkbox_widget (widget ) and not _is_multiple_checkbox_widget (widget ) \
42+ def _add_input_classes_widget (widget , field_errors ):
43+ if _is_multi_widget (widget ):
44+ for subwidget in widget .widgets :
45+ _add_input_classes_widget (subwidget , field_errors )
46+ elif not _is_checkbox_widget (widget ) and not _is_multiple_checkbox_widget (widget ) \
4447 and not _is_radio_widget (widget ) and not _is_file_widget (widget ):
4548 classes = widget .attrs .get ('class' , '' )
4649 if config .MATERIALIZECSS_VALIDATION :
4750 classes += ' validate'
48- if errors :
51+ if field_errors :
4952 classes += ' invalid'
5053 widget .attrs ['class' ] = classes
5154
5255
5356def add_input_classes (field ):
54- if not is_checkbox (field ) and not is_multiple_checkbox (field ) and not is_radio (field ) \
55- and not is_file (field ):
56- if has_multi_widget (field ):
57- for widget in field .field .widget .widgets :
58- _add_input_classes_widget (widget , field .errors )
59- else :
60- _add_input_classes_widget (field .field .widget , field .errors )
57+ _add_input_classes_widget (field .field .widget , field .errors )
6158
6259
6360def render (element , markup_classes ):
@@ -105,6 +102,10 @@ def _is_file_widget(widget):
105102 return isinstance (widget , forms .FileInput )
106103
107104
105+ def _is_multi_widget (widget ):
106+ return isinstance (widget , forms .MultiWidget )
107+
108+
108109@register .filter
109110def is_checkbox (field ):
110111 return isinstance (field .field .widget , forms .CheckboxInput )
@@ -148,8 +149,3 @@ def is_select(field):
148149@register .filter
149150def is_select_multiple (field ):
150151 return isinstance (field .field .widget , forms .SelectMultiple )
151-
152-
153- @register .filter
154- def has_multi_widget (field ):
155- return isinstance (field .field .widget , forms .MultiWidget )
0 commit comments