Skip to content

Instantly share code, notes, and snippets.

@doobeh
Created July 19, 2012 19:30
Show Gist options
  • Save doobeh/3146222 to your computer and use it in GitHub Desktop.
Save doobeh/3146222 to your computer and use it in GitHub Desktop.
Bootstrap Form Rendering for Jinja2
{% macro bs_field(field,help=False,icon=False,counter=False) %}
<div class="control-group{% if field.errors %} warning{% endif %}">
{% if field.type in ('EmailField','PasswordField','TextField','TextAreaField','FileField','QuerySelectFieldCustom','DecimalField','SelectField') %}
{{ field.label(class="control-label") }}
<div class="controls">
{% if icon %}
<div class="input-prepend">
<span class="add-on"><i class="{{ icon }}"></i></span>
{% endif %}
{{ field(**kwargs)|safe }}
{% if icon %}</div>{% endif %}
{# Show Errors #}
{% if field.errors %}
<p class="help-block">
{%- for error in field.errors %}<i class="icon-star"></i> {{ error }}<br/>{% endfor -%}
</p>
{% endif %}
{% if help or counter%}
<p class="help-block">{{ help|safe }}{% if counter %} <span class="counter-display"></span> characters left. {% endif %}</p>
{% endif %}
</div>
{% elif field.type in ('RadioField') %}
{{ field.label(class="control-label") }}
<div class="controls">
{% for subfield in field %}
<label class="radio">
{{ subfield(**kwargs)|safe }}
{{ subfield.label.text }}
</label>
{% endfor %}
{% if help %}
{% if field.errors %}
<p class="help-block">
{%- for error in field.errors %}<i class="icon-star"></i> {{ error }}{% endfor -%}
</p>
{% endif %}
<p class="help-block">{{ help }}</p>
{% endif %}
</div>
{% else %}
<h1>{{ field }}</h1>
{% endif %}
</div>
{% endmacro %}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment