{% macro renderChanges(changes) %} {% if changes and changes.length %}
{% for change in changes %} {{ renderChange(change) }} {% endfor %}
{% endif %} {% endmacro %} {% macro renderChange(change) %}
{# Render a change and its sub-changes recursively #} {% if change.text %}
{{ change.text }}
{% else %}
{% if change.field %} {{ change.field.label }} {% elif change.manager %} {{ change.manager.label }} {% endif %} {% if change.changes.length %}:{% endif %}
{% endif %} {{ renderChanges(change.changes) }}
{% endmacro %}