{% macro render_errors_and_description(field) %}
{{field.description}} {% for error in field.errors %}
{{error}}
{% endfor %}
{% endmacro %} {% macro render_field(field) %}
{{field(**{"class":"form-control", "aria-describedby": field.id ~ '-desc'}) }} {{render_errors_and_description(field) }}
{% endmacro %} {% macro render_checkbox(checkbox) %}
{% with check_html_id=checkbox.id %} {{render_errors_and_description(checkbox)}} {% endwith %}
{% endmacro %} {% macro render_radio(radio) %}
{{radio.label}} {% for input in radio %} {% with input_html_id=input.id %}
{% endwith %} {% endfor %}
{% endmacro %} {% macro render_select(select) %} {% with select_id=select.id %}
{% endwith %} {% endmacro %} {% macro render_form(form, action=None, legend='', submit_text=_trans('Submit'), id='', multipart=False) %}
{{ title }} {% for field in form %} {% if field.widget.input_type == 'hidden' %} {{field}} {% else %} {% if field.type=='BooleanField' %} {{render_checkbox(field) }} {% elif field.type == 'RadioField' %} {{render_radio(field) }} {% elif field.type == 'SelectField' %} {{render_select(field) }} {% else %} {{ render_field(field) }} {% endif %} {% endif %} {% endfor %}
{% endmacro %} {% macro messages(messages) %} {% with messages = get_flashed_messages(with_categories=True) %} {% if messages %} {% for category, msg in messages %} {% if category %} {% set mapping={'message': 'info', 'error': 'danger', 'success':'success'} %} {% set cat=mapping.get(category, category) %} {% endif %} {% endfor %} {% endif %} {% endwith %} {% endmacro %}