{% macro form_group(field, attrs, data_widget=None) %} {# PURE #} {# `form-group` provides: - horizontal form support - margin-bottom - messages highlighting - correct fieldset layout #} {% set attrs = Attrs.take_prefixed(attrs, 'group-') %} {% do attrs.update({'class': attrs['class'] + 'form-group'}) %} {% if field.messages.error %} {% do attrs.update({'class': attrs['class'] + 'has-error'}) %} {% elif field.messages.success %} {% do attrs.update({'class': attrs['class'] + 'has-success'}) %} {% elif field.messages.warning %} {% do attrs.update({'class': attrs['class'] + 'has-warning'})%} {% elif field.messages.info %} {% do attrs.update({'class': attrs['class'] + 'has-info'}) %} {% endif %} {% if not widget.caption %} {% do attrs.update({'class': attrs['class'] + 'nocaption'}) %} {% endif %} {% do attrs.setdefault('data-name', field.fullname) %} {% do attrs.setdefault('data-widget', data_widget) %} {% do attrs.setdefault('id', 'group-' ~ field.fullname) %}