microblog/app/templates/bootstrap_wtf.html

71 lines
2.4 KiB
HTML

{% macro form_field(field, autofocus) %}
{%- if field.type == 'BooleanField' %}
<div class="form-check mb-3">
{{ field(class='form-check-input') }}
{{ field.label(class='form-check-label') }}
</div>
{%- elif field.type == 'RadioField' %}
{{ field.label(class='form-label') }}
{%- for item in field %}
<div class="form-check{% if loop.last %} mb-3{% endif %}">
{{ item(class='form-check-input') }}
{{ item.label(class='form-check-label') }}
</div>
{%- endfor %}
{%- elif field.type == 'SelectField' %}
{{ field.label(class='form-label') }}
{{ field(class='form-select mb-3') }}
{%- elif field.type == 'TextAreaField' %}
<div class="mb-3">
{{ field.label(class='form-label') }}
{% if autofocus %}
{{ field(class='form-control' + (' is-invalid' if field.errors else ''), autofocus=True) }}
{% else %}
{{ field(class='form-control' + (' is-invalid' if field.errors else '')) }}
{% endif %}
{%- for error in field.errors %}
<div class="invalid-feedback">{{ error }}</div>
{%- endfor %}
</div>
{%- elif field.type == 'SubmitField' %}
{{ field(class='btn btn-primary mb-3') }}
{%- else %}
<div class="mb-3">
{{ field.label(class='form-label') }}
{% if autofocus %}
{{ field(class='form-control' + (' is-invalid' if field.errors else ''), autofocus=True) }}
{% else %}
{{ field(class='form-control' + (' is-invalid' if field.errors else '')) }}
{% endif %}
{%- for error in field.errors %}
<div class="invalid-feedback">{{ error }}</div>
{%- endfor %}
</div>
{%- endif %}
{% endmacro %}
{% macro quick_form(form, action="", method="post", id="", novalidate=False) %}
<form novalidate
{%- if action != None %} action="{{ action }}"{% endif -%}
{%- if method %} method="{{ method }}"{% endif %}
{%- if id %} id="{{ id }}"{% endif -%}
{%- if novalidate %} novalidate{% endif -%}>
{{ form.hidden_tag() }}
{%- for field, errors in form.errors.items() %}
{%- if form[field].widget.input_type == 'hidden' %}
{%- for error in errors %}
<div class="invalid-feedback">{{ error }}</div>
{%- endfor %}
{%- endif %}
{%- endfor %}
{% set ns = namespace(first_field=true) %}
{%- for field in form %}
{% if field.widget.input_type != 'hidden' -%}
{{ form_field(field, ns.first_field) }}
{% set ns.first_field = false %}
{%- endif %}
{%- endfor %}
</form>
{% endmacro %}