| {# Renders field for bootstrap 3 standards. | 
 |  | 
 | Params: | 
 | field - WTForm field | 
 | kwargs - pass any arguments you want in order to put them into the html attributes. | 
 | There are few exceptions: for - for_, class - class_, class__ - class_ | 
 |  | 
 | Example usage: | 
 | {{ macros.render_field(form.email, placeholder='Input email', type='email') }} | 
 | #} | 
 | {% macro render_field(field, label_visible=true) -%} | 
 |  | 
 | <div class="form-group {% if field.errors %}has-error{% endif %} {{ kwargs.pop('class_', '') }}"> | 
 |     {% if (field.type != 'HiddenField' or field.type !='CSRFTokenField') and label_visible %} | 
 |     <label for="{{ field.id }}" class="control-label">{{ field.label }}</label> | 
 |     {% endif %} | 
 |     {{ field(class_='form-control text-capitalized', **kwargs) }} | 
 |     {% if field.errors %} | 
 |     {% for e in field.errors %} | 
 |     <p class="help-block">{{ e }}</p> | 
 |     {% endfor %} | 
 |     {% endif %} | 
 | </div> | 
 | {%- endmacro %} | 
 |  | 
 | {# Renders checkbox fields since they are represented differently in bootstrap | 
 | Params: | 
 | field - WTForm field (there are no check, but you should put here only BooleanField. | 
 | kwargs - pass any arguments you want in order to put them into the html attributes. | 
 | There are few exceptions: for - for_, class - class_, class__ - class_ | 
 |  | 
 | Example usage: | 
 | {{ macros.render_checkbox_field(form.remember_me) }} | 
 | #} | 
 | {% macro render_checkbox_field(field) -%} | 
 | <div class="checkbox"> | 
 |     <label> | 
 |         {{ field(type='checkbox', **kwargs) }} {{ field.label }} | 
 |     </label> | 
 | </div> | 
 | {%- endmacro %} | 
 |  | 
 | {# Renders radio field | 
 | Params: | 
 | field - WTForm field (there are no check, but you should put here only BooleanField. | 
 | kwargs - pass any arguments you want in order to put them into the html attributes. | 
 | There are few exceptions: for - for_, class - class_, class__ - class_ | 
 |  | 
 | Example usage: | 
 | {{ macros.render_radio_field(form.answers) }} | 
 | #} | 
 | {% macro render_radio_field(field) -%} | 
 | {% for value, label, _ in field.iter_choices() %} | 
 | <div class="radio" style="margin:8pt auto;"> | 
 |     <label> | 
 |         <input type="radio" name="{{ field.id }}" id="{{ field.id }}" value="{{ value }}">{{ label }} | 
 |     </label> | 
 |     {% if field.errors %} | 
 |     {% for e in field.errors %} | 
 |     <p class="help-block">{{ e }}</p> | 
 |     {% endfor %} | 
 |     {% endif %} | 
 | </div> | 
 | {% endfor %} | 
 | {%- endmacro %} | 
 |  | 
 |  | 
 | {# Renders WTForm in bootstrap way. There are two ways to call function: | 
 | - as macros: it will render all field forms using cycle to iterate over them | 
 | - as call: it will insert form fields as you specify: | 
 | e.g. {% call macros.render_form(form, action_url=url_for('.login_view'), action_text='Login', | 
 | class_='login-form') %} | 
 | {{ macros.render_field(form.email, placeholder='Input email', type='email') }} | 
 | {{ macros.render_field(form.password, placeholder='Input password', type='password') }} | 
 | {{ macros.render_checkbox_field(form.remember_me, type='checkbox') }} | 
 | {% endcall %} | 
 |  | 
 | Params: | 
 | form - WTForm class | 
 | method - form method | 
 | action_url - url where to submit this form | 
 | action_text - text of submit button | 
 | class_ - sets a class for form | 
 | #} | 
 | {% macro render_form(form, action_url='', method='POST', action_text='Submit', class_='', disabled=False, | 
 | btn_class='btn btn-default') -%} | 
 |  | 
 | <form method="{{ method }}" action="{{ action_url }}" role="form" class="{{ class_ }}"> | 
 |     {{ form.hidden_tag() if form.hidden_tag }} | 
 |     {% if caller %} | 
 |         {{ caller() }} | 
 |     {% else %} | 
 |     {% for f in form %} | 
 |     {% if f.id != 'csrf_token' %} | 
 |         {% if f.type == 'BooleanField' %} | 
 |             {{ render_checkbox_field(f) }} | 
 |         {% elif f.type == 'RadioField' %} | 
 |             {{ render_radio_field(f) }} | 
 |         {% else %} | 
 |             {{ render_field(f) }} | 
 |         {% endif %} | 
 |     {% endif %} | 
 |     {% endfor %} | 
 |     {% endif %} | 
 |     <button type="submit" {% if disabled %} disabled {% endif %} class="{{ btn_class }}">{{ action_text }}</button> | 
 | </form> | 
 | {%- endmacro %} |