Students{{ jobs|length }} of {{ link.students|length }} received · {{ jobs|selectattr('1.phase','equalto','sent')|list|length }} delivered to Canvas
{% for student in link.students %}{% set matches=jobs|selectattr('1.student.id','equalto',student.id)|list %}{% set item=matches|last %}{% set d=item[1] if item else none %}{% set op=item[0] if item else '' %} {% endfor %}
StudentSession statusDeliveryActions
{{ student.name }}{{ 'Writing received' if d else 'Live status unavailable' }}{% if d %}{{ {'review':'Ready for review','resubmission_review':'Approval required','queued':'Pending delivery','uploading':'Sending','staged':'Sending','dispatching':'Confirming','processing':'Processing','verifying':'Verifying','sent':'Sent to Canvas','attention':'Needs attention'}.get(d.phase,d.phase) }}{% if d.attempt %} · Attempt {{ d.attempt }}{% endif %}{% if d.message and d.phase != 'sent' %}{{ d.message }}{% endif %}{% else %}Not received{% endif %}{% if d %} {% if d.phase == 'resubmission_review' %}

Send this writing as a new Canvas attempt. Earlier Vero writing is retained; the existing Canvas grade is preserved.

{% elif d.phase == 'review' %}
{% elif d.phase in ("attention", "dispatching") %}
{% endif %} {% endif %}