{% if ps_state in ("unreleased", "released") %}
{% if pset["status"]["initial_extension"] != 0 %}
(You have
{{pset["status"]["initial_extension"]|a_an}}
{{pset["status"]["initial_extension"]}}‑hour extension
on the initial deadline)
{% elif ps_state == "released" %}
Take an extension
{% endif %}
{% elif ps_state in ("under_review", "revisable") %}
{% if pset["status"]["revision_extension"] != 0 %}
(You have
{{pset["status"]["revision_extension"]|a_an}}
{{pset["status"]["revision_extension"]}}‑hour extension
on the revision deadline)
{#
Uncomment (and further develop) here to allow taking extensions
on the revision deadline
{% elif ps_state == "revisable" %}
Take a revision extension
#}
{% endif %}
{% endif %}
{% for task in pset["tasks"] %}
{# TODO: Add extension request UI #}
{# Figure out whether the base task or the revision is relevant #}
{% set rev_task = task["revision"] %}
{% if ps_state in ("unreleased", "released", "under_review") %}
{# ps state is too early for revisions #}
{% set rel_task = task %}
{% elif rev_task and rev_task["submission_status"] != "unsubmitted" %}
{# There's a revision which isn't unsubmitted #}
{% set rel_task = rev_task %}
{% else %}
{# There's no revision, or it's unsubmitted #}
{% set rel_task = task %}
{% endif %}
{# Compute your current grade #}
{% set grade_str = task|task_combined_grade|grade_string %}
{% if
ps_state in ("revisable", "final")
and grade_str == "unknown"
%}
{% set full_grade = 0 %}
{% set grade_str = "0 / 100" %}
{% endif %}
{{task["submission_icon"]}}
{% if sub_phase in ("revision", "belated", "invalid") %}
{{rev_task["submission_icon"]}}
{% endif %}
{{task["id"]}}
{% if ps_state in ("revisable", "final", "unknown") %}
{# Skip (old) messages if we're in-flight #}
{% if rel_task["submission_status"] != "inflight" %}
{% for
message in rel_task["feedback_summary"]["report"]["warnings"]
%}