{% macro form_fields(form, only=none, 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.widget.input_type == 'hidden' %} {{ field }} {% else %} {% if field.name not in exclude and (not only or field.name in only) %} {% if placeholder %} {% set placeholder = field.label.text %} {% endif %} {{ form_field(field, form_group_class=form_group_class, show_label=show_label, placeholder=placeholder) }} {% endif %} {% endif %} {% endfor %} {% endmacro %} {% macro form_errors(field) %} {%- if field.errors %}
{%- for error in field.errors %}

{{ error }}

{% endfor -%}
{% endif -%} {% endmacro %} {% macro form_label(label, label_class='', required=false) %} {% if required %} {% set label_class = label_class + ' required' %} {% endif %} {{ label(class=label_class) }} {% endmacro %} {% macro form_check(field, valid_default_class='') %} {% set valid_class = 'is-invalid' if field.errors else valid_default_class %} {% set control_class = 'custom-checkbox' if field.widget.input_type == 'checkbox' else 'custom-radio' %}
{{ field(class='custom-control-input ' + valid_class) }} {{ field.label(class='custom-control-label') }} {{ form_errors(field) }}
{% endmacro %} {% macro form_only_field(field, placeholder=false, addon_before=none, addon_after=none) %} {% set valid_class = 'is-invalid' if field.errors else '' %} {% if field.render_kw and field.render_kw.get('data-icon') %} {% set addon_after %}{% endset %} {% endif %} {% if addon_before %}
{{ addon_before|safe }}
{% endif %} {% if placeholder is true %} {% set placeholder = field.label.text %} {% endif %} {% if field.widget.input_type == 'file' %}
{{ field(class="custom-file-input " + valid_class) }}
{% else %} {{ field(class="form-control " + valid_class, placeholder=placeholder) }} {% endif %} {% 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 %} {{ form_errors(field) }} {% endmacro %} {% macro form_field(field, form_group_class='form-group', placeholder=false, show_label=true, addon_before=none, addon_after=none) %}
{% if show_label %} {{ form_label(field.label, required='required' in field.flags) }} {% endif %} {{ form_only_field(field, placeholder=placeholder, addon_before=addon_before, addon_after=addon_after) }}
{% 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 %}