{% 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) %}
{{ caller() }}
{% endmacro %} {% macro prepend_append(prepend, append, attrs) %} {# PURE #} {% set prepend_attrs = Attrs.take_prefixed(attrs, 'prepend-') %} {% set append_attrs = Attrs.take_prefixed(attrs, 'append-') %} {% do prepend_attrs.update({'class': prepend_attrs['class'] + 'input-group-addon'}) %} {% do append_attrs.update({'class': append_attrs['class'] + 'input-group-addon'}) %} {% if prepend and append %}
{{ prepend }} {{ caller() }} {{ append }}
{% elif prepend %}
{{ prepend }} {{ caller() }}
{% elif append %}
{{ caller() }} {{ append }}
{% else %} {{ caller() }} {% endif %} {% endmacro %} {% macro print_label(field, caption, description, tooltip, attrs) %} {# PURE #} {% set attrs = attrs.copy() %} {% do attrs.update({'class': attrs['class'] ~ ' control-label'}) %} {% do attrs.update({'for': attrs['for'] or field.fullname}) %} {% do attrs.update({'required': attrs['required'] if str(attrs['required']) else field.required() }) %} {% if caller %} {% else %} {% endif %} {% endmacro %}