{% 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") %}