{% macro menu_category(menu, request) %} {% if menu.is_visible(request) and menu.is_accessible(request) %} {% endif %} {% endmacro %} {% macro menu_item(menu, request) %} {% if menu.is_visible(request) and menu.is_accessible(request) %} {% endif %} {% endmacro %} {% macro display_menu(menu, request) %} {% endmacro %} {% macro render_field(field, kwargs={}, ajax_lookup_url="") %}
{{ field.label( class_="form-label col-sm-2 col-form-label" + (' required-label' if field.flags.required else ''), **({'title': "This is a required field"} if field.flags.required else {}) ) }}
{% if ajax_lookup_url and field.loader is defined %} {% set extra = {"data_url": ajax_lookup_url} %} {% else %} {% set extra = {} %} {% endif %} {% if field.errors %} {{ field(class_="form-control is-invalid", **extra) }} {% else %} {{ field(**extra) }} {% endif %} {% for error in field.errors %}
{{ error }}
{% endfor %} {% if field.description %} {{ field.description }} {% endif %}
{% endmacro %} {% macro render_form_fields(form, form_opts=None, ajax_lookup_url="") %} {% if form.hidden_tag is defined %} {{ form.hidden_tag() }} {% else %} {% for f in form if f.widget.input_type == 'hidden' %} {{ f }} {% endfor %} {% endif %} {% for f in form if f.widget.input_type != 'hidden' %} {{ render_field(f, kwargs, ajax_lookup_url=ajax_lookup_url) }} {% endfor %} {% endmacro %}