{% set encoding = "multipart/form-data" if form.__iter__() | selectattr("type", "in", ["FileField","MultipleFileField"]) | list else "application/x-www-form-urlencoded" %}
{% if form.form_errors %} {% endif %} {% for field in form %} {% set valid_css = " is-invalid" if field.errors else " is-valid" if field.raw_data != [] else ""%} {% if field.type == "SubmitField"%} {{field(class="btn btn-sm btn-success")}} {% elif field.type in ["CSRFTokenField","HiddenField"]%} {{field()}} {% elif field.type == "BooleanField"%}
{{field(class="form-check-input"~valid_css, **{"hx-post":True, "hx-target":"closest div"})}} {{field.label(class="form-check-label")}} {% include "htmx_components_flask/form/errors.html"%} {% include "htmx_components_flask/form/description.html"%}
{% elif field.type == "RadioField"%}
{{field.label(class="form-label")}} {% for subfield in field %}
{{subfield(class="form-check-input"~valid_css, **{"hx-post":True, "hx-target":"closest fieldset"})}} {{subfield.label(class="form-check-label")}} {% if loop.last %} {% include "htmx_components_flask/form/errors.html"%} {% include "htmx_components_flask/form/description.html"%} {% endif %}
{% endfor%}
{% else %}
{{field.label(class="form-label")}} {% if field.type in ["SelectField", "SelectMultipleField"]%} {% set css = "form-select"%} {% elif field.type in ["IntegerRangeField", "DecimalRangeField"]%} {% set css = "form-range"%} {% elif field.type == "ColorField"%} {% set css = "form-control form-control-color"%} {% else %} {% set css = "form-control"%} {% endif %} {{field(**{"class":css~valid_css, "hx-target":"closest div", "hx-post":true})}} {% include "htmx_components_flask/form/errors.html"%} {% include "htmx_components_flask/form/description.html"%}
{% endif %} {% endfor %}