{# Form field macros - renders the appropriate input for each field type #} {% macro render_field(field, values={}, errors={}) %} {% set value = values.get(field.name, field.default) if values else field.default %} {% set error = errors.get(field.name, "") if errors else "" %}
{% if field.type == "checkbox" %} {# Checkbox: label is inline #} {% elif field.source %} {# Search-select: dynamic search with autofill #} {% include "fragments/search_select.html" %} {% else %} {# Standard fields: label above #} {% if field.type == "textarea" %} {% elif field.type == "select" %} {% elif field.type == "date" %} {% elif field.type == "datetime" %} {% elif field.type == "money" %} {# Money widget: major-unit display input + hidden minor-unit value #} {% if field.extra.get('currency_fixed', true) %} {# Pinned currency — static prefix symbol #}
{{ field.extra.symbol }}
{% else %} {# Unpinned currency — dropdown selector #}
{% endif %} {% elif field.type == "number" %} {% elif field.type == "email" %} {% else %} {# Default: text input #} {% endif %} {% endif %} {% if error %} {% endif %}
{% endmacro %}