{% macro render_field(field, group_class, field_class, readonly=False) %}
{{ field.label(class="col-form-label") }} {% if field.errors %} {{ field(class="form-control is-invalid " + field_class, readonly=readonly)|safe }}
{% for error in field.errors %} {{ error }} {% endfor %}
{% else %} {{ field(class="form-control " + field_class, 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-form-label") }} {% 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-form-label") }} {% 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="btn btn-" + color) }} {%- endmacro %}