{% macro form_fields(form, exclude=none, form_group_class='form-group', show_label=true, placeholder=false) %} {% if exclude is not iterable %} {% set exclude = [] %} {% endif %} {% for field in form %} {% if field.name not in exclude %} {% if field.widget.input_type != 'hidden' %} {% if placeholder %} {% set placeholder = field.label.text %} {% endif %} {{ form_field(field, form_group_class=form_group_class, show_label=show_label, placeholder=placeholder) }} {% else %} {{ field }} {% endif %} {% endif %} {% endfor %} {% endmacro %} {% macro form_field(field, form_group_class='form-group', placeholder='', show_label=true, addon_before=none, addon_after=none) %}
{% if show_label %} {{ field.label }} {% endif %} {%- if field.errors %} {% set valid_class='is-invalid' %} {%- else %} {% set valid_class='' %} {% endif -%} {% if field.render_kw and field.render_kw.get('data-icon') %} {% set addon_after %}{% endset %} {% endif %} {% if addon_before %}
{{ addon_before|safe }}
{% endif %} {{ field(class="form-control " + valid_class, placeholder=placeholder) }} {% if field.description %} {% if field.description is iterable and field.description is not string %} {% else %} {{ field.description }} {% endif %} {% endif %} {% if addon_after %}
{{ addon_after|safe }}
{% endif %} {%- if field.errors %}
{%- for error in field.errors %}

{{ error }}

{% endfor -%}
{% endif -%}
{% endmacro %} {% macro breadcrumb(title='', url='', icon='', is_active=false, position=none) %} {% set label|trim %} {% if icon %}{% endif %} {% if title %}{{ title|safe }}{% endif %} {% endset %} {% if label and not url %} {% set body = label %} {% elif not label and not url %} {% set body = caller() %} {% else %} {% set body %}{{ label }}{% endset %} {% endif %} {% endmacro %} {% macro pagination(pages, pagination_class='') %} {% endmacro %}