{% extends "base.html" %} {% from "_lifetime.html" import lifetime %} {% block title %}{{ name }} · marks · The Booth{% endblock %} {% block content %} {# The marks page for a booth whose own index.html is served VERBATIM. That page cannot render the panel inline (it is returned untouched by design), so the injected chip links here instead. Same forms, same POST targets — only the redirect differs, so answering lands back here rather than on the report. #}
‹ {{ name }}

Marks

{# `marks_open` comes from open_marks() — the ONE openness predicate (INV-2). This used to re-derive it in Jinja as `selectattr('answer', 'none')`, which read a half-answered pick as closed. #} {% if marks_open %}{{ marks_open }} open · {% endif %}{{ marks|length }} mark{{ '' if marks|length == 1 else 's' }} · {{ lifetime(kept, hold, expires_in) }}
{% if marks %} {% include "_marks.html" %} {% else %}
This booth has no marks.
{% include "_marks.html" %} {% endif %} {% endblock %}