{% macro pager(page, pages, generator) -%} {% if pages > 1 %} {% endif %} {%- endmacro %} {% macro render_field(field, show_error_list=True) %}
{{ field.label }} {{ field(**kwargs)|safe }} {% if show_error_list and field.errors %} {% endif %}
{% endmacro %} {% macro render_ff (ff, delete, readonly=False) %}
{% if ff.type == "FormField" %} {% if delete %} Delete {% else %}

{{ ff.short_name|capitalize }}

{% endif %}
{{ render_formfield(ff.form) }}
{% elif ff.type == "ListField" %}

{{ff.short_name|capitalize}}

{% if delete %} Delete {% endif %} {% set a = ff.new_generic() %}
{% for field in ff %} {{ render_ff(field, True) }} {% endfor %}
{% else %} {% if delete %} Delete {% else %} {% endif %}
{% set class='' %} {% if ff.type == "DateTimeField" %} {% set data_type="datetimepicker" %} {% endif %} {% if ff.errors|length>0 %} {% set class=class+' error' %}{% endif %} {% if readonly %}
{{ ff.data }}
{% else %} {{ ff(class=class) }} {% endif %} {% for error in ff.errors %}  {{ error }} {% endfor %} {% if ff.description %}

{{ ff.description }}

{% endif %}
{% endif %}
{% endmacro %} {% macro render_formfield(form) %}
{% for f in form if f.name != 'csrf_token' and f.name != 'csrf' %} {{ render_ff(f, readonly=f.name in form.readonly_fields) }} {% endfor %}
{% endmacro %} {% macro render_form(form, cancel_url, extra=None, can_edit=True, can_delete=True) -%}
{{ form.hidden_tag() if form.hidden_tag is defined }} {{ render_formfield(form) }} {# if the view is not editable nor deletable, there's no point to show any buttons #} {% if can_edit or can_delete %}
{% if extra %} {{ extra }} {% endif %} {% if cancel_url %} {{ _gettext('Cancel') }} {% endif %}
{% endif %}
{% endmacro %}