{% macro rendererrors(field) -%} {%- if field.errors -%} {%- for error in field.errors %}

{{ error }}

{%- endfor %} {%- endif %} {%- endmacro %} {% macro renderfield(field, css_class="", widget_css_class="", sidetext=none, tabindex=none, autofocus=false, nolabel=false, style='horiz', rows=none) -%} {%- if field.widget.html_tag in ['ul', 'ol'] %} {%- set listwidget = true %} {%- elif field.widget.input_type == 'checkbox' %} {%- set listwidget = false %} {%- else %} {%- set listwidget = false %} {%- endif -%} {%- if field.type == 'FormField' %}
{{ field.label.text }} {%- for subfield in field.form %} {{ renderfield(field=subfield, css_class=css_class, widget_css_class=widget_css_class, sidetext=sidetext, tabindex=tabindex, autofocus=false, nolabel=nolabel, style=style, rows=rows) }} {%- endfor %}
{%- else %}
{%- if field.type == 'RadioMatrixField' %}
{{ field | render_field_options(class="field-" + field.id + " " + widget_css_class) }} {%- if field.description %}

{{ field.description }}

{%- endif %}
{%- elif field.type == 'BooleanField' %}
{{ rendererrors(field) }} {%- if field.description %}

{{ field.description }}

{%- endif %}
{%- else %} {%- if not nolabel %} {%- endif %}
{%- if field.type in ['AnnotatedTextField', 'AnnotatedNullTextField'] %}
{% if field.prefix %}{{ field.prefix }}{% endif %} {{ field | render_field_options(class="form-control field-" + field.id + " " + widget_css_class, tabindex=tabindex, autofocus=autofocus, rows=rows)}} {% if field.suffix %}{{ field.suffix }}{% endif %}
{%- elif field.type == 'CoordinatesField' %} {{ map_marker_widget(field) }} {%- elif field.widget.input_type in ['text', 'password', 'color', 'date', 'datetime', 'datetime-local', 'email', 'month', 'number', 'search', 'tel', 'time', 'url', 'week'] or (field.type in ['SelectField', 'QuerySelectField', 'SelectMultipleField', 'QuerySelectMultipleField', 'TextAreaField', 'TextListField', 'MarkdownField'] and field.widget.html_tag not in ['ul', 'ol']) %} {{ field | render_field_options(class="form-control field-" + field.id + " " + widget_css_class, tabindex=tabindex, autofocus=autofocus, rows=rows)}} {%- else %} {{ field | render_field_options(class="field-" + field.id + " " + widget_css_class, tabindex=tabindex, autofocus=autofocus, rows=rows)}} {%- endif %} {%- if sidetext %} {{sidetext}} {%- endif %} {{ rendererrors(field) }} {%- if field.description %}

{{ field.description }}

{%- endif %}
{%- endif %}
{%- endif %} {%- endmacro %} {% macro rendersubmit(buttons=[], css_class="", tabindex='', cancel_url='', style='horiz', csrf_error=false) -%}
{% for name, value, widget_class in buttons -%} {% endfor %} {% if cancel_url %}{% trans %}Cancel{% endtrans %}{% endif %} {% if csrf_error -%}

{% trans -%} This form has timed out. Please submit again to confirm {%- endtrans %}

{%- endif %}
{%- endmacro %} {% macro renderform_inner(form, formid, style='horiz') -%} {%- if form.errors %}
× {% trans %}Please review the indicated issues{% endtrans %}
{%- endif %} {% if message %}

{{ message }}

{% endif %}
{{ form.hidden_tag() }} {%- set autofocus = true %} {% for field in form -%} {%- if field.type in ['CSRFTokenField', 'HiddenField'] -%} {# Don't show hidden #} {%- else -%} {{ renderfield(field, autofocus=autofocus, style=style) }} {%- if autofocus %}{% set autofocus = false %}{% endif %} {%- endif %} {% endfor %} {%- endmacro %} {% macro renderform(form, formid, submit, message='', action='', cancel_url='', multipart=false, style='horiz') %}
{{ renderform_inner(form, formid or none, style=style) }} {{ rendersubmit([(none, submit or _("Submit"), 'btn-primary')], cancel_url=cancel_url, style=style, csrf_error=form.csrf_token.errors) }}
{% endmacro %} {%- macro ajaxform(formid, request, force=false) %} {%- if force or request.is_xhr %} {%- else %} {%- endif %} {%- endmacro %} {% macro tinymce3_editor(field, script=true) -%} {%- if script %} {%- endif %} {% endmacro %} {% macro tinymce4_editor(field, script=true) -%} {%- if script %} {%- endif %} {% endmacro %} {% macro map_marker_widget(field) %}
{{ field(class="field-" + field.id + " form-control") }}
{% endmacro %} {% macro map_marker_script(field) %} new window.Baseframe.MapMarker({ location_id: "{{ field.id}}_search", map_id: "{{ field.id }}_map", latitude_id: "{{ field.id }}_latitude", longitude_id: "{{ field.id}}_longitude" }); {% endmacro %} {% macro widget_ext_scripts(form) %} {%- with scripts = {} %} {%- for field in form %} {%- if field.type == 'CoordinatesField' %} {#- We're using setdefault instead of a simple = because the do extension doesn't support assignment #} {%- do scripts.setdefault('gmap', '//maps.google.com/maps/api/js?sensor=false&libraries=places') %} {%- do scripts.setdefault('locationpicker', 'jquery.locationpicker.js'|ext_asset_url) %} {%- endif %} {%- endfor %} {%- for key in scripts %} {%- endfor %} {%- endwith %} {% endmacro %} {% macro widgetscripts(form, script=true) -%} {%- if script %} {%- endif -%} {% endmacro %}