{# vim: set shiftwidth=2 tabstop=2: #} {% extends "base.html" %} {% block body_attrs %} class="gradesheet fullwidth" {% endblock %} {% block main_content %}

Ocean Server for {{course_name}} {{semester}}

Back to the dashboard

Gradesheet for {{ps.id}}

{{ due_at(ps["status"]) }} {{ countdown(ps["status"]) }}

Time spent on this problem set:
{% for phase in aggregate_times %} {% if phase != "all" %} {% set aggregates = aggregate_times[phase] %} {% for taskid in aggregates["average"]|sorted %} {% endfor %} {% endif %} {% endfor %}
Part Average Median 75th percentile
total {{aggregate_times["all"]["average"]|timespent}} {{aggregate_times["all"]["median"]|timespent}} {{aggregate_times["all"]["75th"]|timespent}}
{% if loop.first %}{{ phase }}{% endif %} {{ taskid }} {{aggregates["average"][taskid]|timespent}} {{aggregates["median"][taskid]|timespent}} {{aggregates["75th"][taskid]|timespent}}

{% if ps|uses_pools %} {# Add an extra row showing the pool IDs #} {% for pool, span in ps|pset_pools %} {% endfor %} {% for _ in "IR" %} {% for pool, span in ps|pset_pools %} {% endfor %} {% endfor %} {% endif %} {# ps uses pools #} {% for task in ps["tasks"] %} {% endfor %} {% for _ in "IR" %} {% for task in ps["tasks"] %} {% endfor %} {% endfor %} {% for student in roster %} {% if student_info %} {% set sinfo = student_info.get(student["username"], {}) %} {% else %} {% set sinfo = {} %} {% endif %} {% set exp = sinfo.get("experience_amount") %} {% if exp in (None, "None") %} {% set estr = "none" %} {% set eclass = "no-experience" %} {% elif exp.startswith("More") %} {% set estr = "a bit" %} {% set eclass = "short-experience" %} {% elif exp.startswith("Less") %} {% set estr = ">1mo" %} {% set eclass = "long-experience" %} {% else %} {% set estr = exp %} {% set eclass = "unknown-experience" %} {% endif %} {% if student["this_pset"] == None %} {% for _ in "IR" %} {% endfor %} {% else %} {% set this_ps = student["this_pset"] %} {% set timing = student["task_info"] %} {# Overall grade & time spent #} {% set pset_grade = this_ps|pset_combined_grade %} {% if this_ps["total_time"] != "?" %} {% if this_ps["total_time"] < aggregate_times["all"]["median"] %} {% set timecat="faster" %} {% elif this_ps["total_time"] < aggregate_times["all"]["75th"] %} {% set timecat="slower" %} {% else %} {% set timecat="very_slow" %} {% endif %} {% else %} {% set timecat="unknown" %} {% endif %} {# Combined grades for each task #} {% for task in this_ps["tasks"] %} {% set combined_grade = task|task_combined_grade %} {% endfor %} {# Initial grades for each task #} {% for task in this_ps["tasks"] %} {% set grade = task["feedback_summary"].get("grade") %} {% set spent = task["initial_time_val"]|timespent %} {% set subdesc = task["submission_desc"] %} {% if spent != '-' %} {% set subdesc = subdesc + "; spent " + spent %} {% endif %} {% endfor %} {# Revised grades for each task #} {% for task in this_ps["tasks"] %} {% set rev_task = task["revision"] %} {% set grade = rev_task["feedback_summary"].get("grade") %} {% set spent = task["revision_time_val"]|timespent %} {% set subdesc = "revision " + rev_task["submission_desc"] %} {% if spent != '-' %} {% set subdesc = subdesc + "; spent " + spent %} {% endif %} {% endfor %} {% endif %} {% endfor %}
Name 🛈 Pronoun Username Sections Exp? Overall Combined Initial Revised
{{ pool }} {{ pool }}
Lec Lab Grade Time {{ task["id"] }} {{ task["id"] }}
{% if sinfo["nonce"] %}({{sinfo["nonce"]}}){% endif %} {{sinfo["full_name"] or student["fullname"]}} 🛈 {{sinfo.get("pronouns","?")|pronoun}} {{student["username"]}} {{sinfo.get("lecture_instructor", "")|initials}} {{sinfo.get("lab_instructor", "")|initials}} {{estr|safe}} missing No data No data {{pset_grade|grade_string|shorter_grade}} {{this_ps["total_time"]|timespent}} {{combined_grade|grade_string|shorter_grade}} {{grade|grade_string|shorter_grade}} {{grade|grade_string|shorter_grade}}
{% endblock %}