{% from 'message_box.html' import message_box %}
{% macro _render_errors(errors) -%}
{%- for error in errors -%}
{{ error }}
{%- endfor -%}
{%- endmacro %}
{% macro form_header(form, method='post', action='', orientation='horizontal', id=none, classes='', multipart=false,
i_form=true, no_ajax=false, disable_if_locked=true, extra_attrs={}) -%}
{% endmacro %}
{% macro form_fieldset(legend, description=none, disabled=false, render_as_fieldset=true, id=none,
collapsible=false, initially_collapsed=true) %}
{% if not render_as_fieldset %}
{#
This is sugar for cases where you sometimes want the fieldset
to show up as a fieldset and sometimes just want the contents.
The most common use case for this is a form which has either
a single fieldset or multiple fieldsets depending on the user's
privileges. In this case it often looks better not to show the
single fieldset as an actual fieldset.
Using `render_as_fieldset` keep the code using this macro clean
as it won't need extra conditions/macros/blocks to show the same
content either inside or outside this fieldset.
#}
{{ caller() }}
{% else %}
{% endif %}
{% endmacro %}
{# Renders a form with the most common default markup #}
{% macro simple_form(form, fields=none, submit=none, back=none, back_url=none, back_button=true,
disabled_until_change=true, disabled_fields=(), form_header_kwargs={}, skip_labels=false,
save_reminder=false, footer_align_right=false, disable_if_locked=true, message=none) %}
{% set submit = submit or _('Save') %}
{% set back = back or _('Back') %}
{{ form_header(form, disable_if_locked=disable_if_locked, **form_header_kwargs) }}
{% if message %}
{{ message_box('warning', message=message, icon=true) }}
{% endif %}
{% if caller %}
{{ caller() }}
{% else %}
{{ form_rows(form, fields=fields, disable=disabled_fields, skip_labels=skip_labels) }}
{% endif %}
{% call form_footer(form, skip_label=skip_labels, align_right=footer_align_right) %}
{% if back_button %}
{% if back_url %}
{{ back }}
{% else %}
{% endif %}
{% endif %}
{% endcall %}
{% endmacro %}