{# ══════════════════════════════════════════════ MACROS — must come before first use in Jinja2 ══════════════════════════════════════════════ #} {# List view: indented tree with ├── / └── connector lines. open_stack: list of booleans — True = ancestor has more siblings (draw vert), False = last (draw blank). is_last: whether this node is the last sibling among its parent's children. #} {% macro render_list_item(qid, quest_by_id, children, visible, collector_prereqs, open_stack, is_last, collector_id) %} {% set q = quest_by_id[qid] %} {% set visible_kids = [] %} {% for cid in children.get(qid, []) %} {% if cid in visible %}{% set _ = visible_kids.append(cid) %}{% endif %} {% endfor %}
{{ done }} / {{ total }} quests completed