{% macro render(form, exclude=None) %} {% set excluded = exclude or [] %}
{% for f in form %} {% if f in excluded %} {% elif f.type in ('CSRFTokenField', 'HiddenField') %} {{ f() }} {% else %} {{ field(f) }} {% endif %} {% endfor %}
{% endmacro %} {% macro field(f, sizes='sm-2,md-3') %}
{% if f.subfield %} {% for subfield in f %} {{ field(subfield, sizes) }} {% endfor %} {% endif %}
{% set cols = form_grid(sizes) %}
{% if f.type == 'RadioField' %} {{ radio(f) }} {% elif f.type == 'BooleanField' %} {{ checkbox(f) }} {% else %} {{ f(class_='form-control') }} {% endif %} {% for error in f.errors %} {% endfor %}
{% endmacro %} {% macro radio(field) %} {% if field.stacked %} {{ radio_stacked(field) }} {% else %} {{ radio_inline(field) }} {% endif %} {% endmacro %} {% macro radio_inline(field) %} {% for value, label, selected in field.iter_choices() %} {% endfor %} {% endmacro %} {% macro radio_stacked(field) %} {% for value, label, selected in field.iter_choices() %}
{% endfor %} {% endmacro %} {% macro checkbox(field) %} {% if field.stacked %} {{ checkbox_stacked(field) }} {% else %} {{ checkbox_inline(field) }} {% endif %} {% endmacro %} {% macro checkbox_inline(field) %} {% endmacro %} {% macro checkbox_stacked(field) %}
{% endmacro %} {% macro required_disclaimer(sizes='sm-2') %} {% set cols = form_grid(sizes) %}

* {{ _('required fields') }}

{% endmacro %}