{% macro render_field(field) %} {%- set css_class = kwargs.pop('class', '') %} {%- set error_css = '' %} {%- if field.flags.required %} {% set css_class = '{} required'.format(css_class) %} {%- endif %} {%- if field.errors %} {% set css_class = '{} has_error'.format(css_class) %} {%- set error_css = 'error' %} {%- endif %}
{{ field.label(class="control-label"+error_css) }}
{{ field(class=css_class, **kwargs) }} {%- if field.errors %} {% for error in field.errors %}{{ error|e }}. {% endfor %} {%- endif %}
{% endmacro %}
{{ form.csrf_token }} {%- set options = form._widgets_options|default({}) %} {%- for label, field_names in form._groups %} {%- if label %}{{ label }}{%- endif %}
{%- for field_name in field_names %} {{ render_field(form[field_name], widget_options=options.get(field_name, {})) }} {%- endfor %}
{% endfor %}
{%- if for_new %} {%- if has_save_and_add_new %} {%- endif %} {%- else %} {%- endif %}
{% if rules %} {% endif %} {% if form.js %} {% endif %}