{% macro render_field(field, group_class, readonly=False) %}
{{ field.label(class='col-sm-4 col-form-label', readonly=readonly) }} {% if field.errors %}
{{ field(class='form-control is-invalid', readonly=readonly)|safe }}
{% for error in field.errors %} {{ error }} {% endfor %}
{% else %}
{{ field(class='form-control', readonly=readonly)|safe }}
{% endif %}
{% endmacro %} {% macro render_checkbox(field, group_class, disabled=False) %}
{% if field.errors %} {{ field(class='form-check-input is-invalid', disabled=disabled)|safe }}
{% for error in field.errors %} {{ error }} {% endfor %}
{% else %} {{ field(class='form-check-input', disabled=disabled)|safe }} {% endif %} {{ field.label(class='form-check-label') }}
{% endmacro %} {% macro render_field(field, group_class, readonly=False, rows=3) %}
{{ field.label(class='col-sm-4 col-form-label', readonly=False) }} {% if field.errors %}
{{ field(class='form-control is-invalid', rows=rows, readonly=readonly)|safe }}
{% for error in field.errors %} {{ error }} {% endfor %}
{% else %}
{{ field(class='form-control', rows=rows, readonly=readonly)|safe }}
{% endif %}
{% endmacro %} {% macro render_multiple_select(field, group_class, disabled=False) %}
{{ field.label(class='col-sm-4 col-form-label', disabled=False) }} {% if field.errors %}
{{ field(class='form-control selectpicker is-invalid', disabled=disabled, multiple='multiple')|safe }}
{% for error in field.errors %} {{ error }} {% endfor %}
{% else %}
{{ field(class='form-control selectpicker', disabled=disabled, multiple='multiple')|safe }}
{% endif %}
{% endmacro %} {% macro render_button(field, color) -%}
{{ field(class='offset-sm-4 btn btn-' + color) }}
{%- endmacro %}