71 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			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 %}
 |