{% macro attrs(values) %} {% for name, value in values.items() %}{% if value != false %} {{ name }}{% if value != true %}="{{ value }}"{% endif %}{% endif %}{% endfor %} {% endmacro %} {% macro bootstrap_form(form, url=None, method='post', enctype='multipart/form-data', form_id=None, recaptcha=None, actions=None) %} {% set form_id = 'form-' + timehash() %}
{% csrf_token %} {% if recaptcha %} {% endif %} {% for error in form.non_field_errors() %}

{{ error }}

{% endfor %} {% for hidden in form.hidden_fields() %}{{ hidden }}{% endfor %} {% for field in form.visible_fields() %} {{ bootstrap_field(field) }} {% endfor %} {% if actions %}
{% for action in actions %} {% endfor %}
{% endif %}
{% endmacro %} {% macro bootstrap_field(field) %} {% set widget = field.field.widget.__class__.__name__ %}
{% if widget == 'CheckboxInput' %} {{ bootstrap_checkbox(field) }} {% elif widget in ('DateInput', 'DateTimeInput', 'TimeInput') %} {{ bootstrap_datetime(field) }} {% elif widget in ('CheckboxSelectMultiple', 'RadioSelect') %} {{ bootstrap_multiple_radio_checkbox(field) }} {% else %} {{ bootstrap_input(field) }} {% endif %}
{% endmacro %} {% macro bootstrap_label(field) %} {% endmacro %} {% macro bootstrap_help_errors(field) %} {% if field.help_text %}

{{ field.help_text }}

{% endif %} {% if field.errors %} {% for error in field.errors %}{{ error }}{% endfor %} {% endif %} {% endmacro %} {% macro bootstrap_input(field) %} {{ bootstrap_label(field) }}
{{ field.as_widget(attrs={ 'class': 'form-control', '@invalid': 'onWappsFormsInvalid', '@input': 'onWappsFormsChange', '@change': 'onWappsFormsChange', }) }} {{ bootstrap_help_errors(field) }}
{% endmacro %} {% macro bootstrap_checkbox(field) %}
{{ bootstrap_help_errors(field) }}
{% endmacro %} {% macro bootstrap_datetime(field) %} {% set input_type = field.field.widget.__class__.__name__.replace('Input', '').lower() %} {{ bootstrap_label(field) }}
{{ bootstrap_help_errors(field) }}
{% endmacro %} {% macro bootstrap_multile_widgets(field) %} {% set widget=field.field.widget %} {% set id = field.id_for_label.replace('_0', '') %} {##} {% for group, options, index in widget.optgroups(field.name, field.value()) %} {% set widget_id = '_'.join((id, index|string)) %} {#% if group %}
  • {{ group }}{% endif %#} {% for widget in options %}{{ caller(widget, id=widget_id) }}{% endfor %} {#% if group %}
  • {% endif %#} {% endfor %} {##} {% endmacro %} {% macro bootstrap_multiple_radio_checkbox(field) %} {{ bootstrap_label(field) }}
    {% call(widget, id=None) bootstrap_multile_widgets(field) %}
    {% endcall %} {{ bootstrap_help_errors(field) }}
    {% endmacro %}