def bootstrap(field): if hasattr(field, 'field') and hasattr(field.field, 'widget') and field.field.widget: widget = field.field.widget.__class__.__name__.lower() if widget in ["passwordinput", "textinput", "textarea", "select", "numberinput", "emailinput"]: return add_class(field, "form-control") if widget in ["checkboxinput", "radioselect"]: return add_class(field, "form-check-input") if widget == "fileinput": return add_class(field, "form-control-file") return field
def add_validated_result_class(field: django.forms.boundfield.BoundField, _=None): if hasattr(field, "errors") and field.errors: adding_class: str = 'is-invalid' elif field.data is not None: adding_class: str = 'is-valid' else: return field return add_class(field, adding_class)
def with_error_popover(field): if hasattr(field, 'errors') and field.errors: #return field return wg.add_class( wg.append_attr( wg.append_attr( wg.append_attr(field, 'data-content:' + '<br/>'.join(field.errors)), 'data-placement:bottom'), 'data-container:body'), 'has-popover') else: return field
def add_class(field, css_class): return widget_tweaks.add_class(field, css_class)