{# vim: set shiftwidth=2 tabstop=2: #} {% extends "base.html" %} {% block head_stuff %} {% if fb_css %} {% endif %} {% if fb_js %} {% endif %} {% endblock %} {% block body_attrs %} class="task_view fullwidth" {% endblock %} {% block main_content %}

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

Back to the dashboard

Feedback for {{target_user}} on {{ps.id}} {{task.id}} {% if phase == "initial" %} (initial submission) {% else %} (revised submission) {% endif %}

{% if ps["status"]["state"] == "final" %}

View the solution for this task.

{% endif %}

{% if phase == "revision" %} {% set other_phase="initial" %} {% set other_name="initial submission" %} {% set item="revision" %} {% else %} {% set other_phase="revision" %} {% set other_name="revised submission" %} {% set item="submission" %} {% endif %} {% set other_link = ( 'View feedback on ' + other_name + ' instead' ) %} {{other_link|safe}}

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

{# TODO: Add link/widget to request an extension #} {# TODO: Add link/widget to submit/resubmit this task #}

{% if task["time_spent"] and task["time_spent"]["time_spent"] != "" %} You reported spending {{ task["time_spent"]["time_spent"] }} hours on this task. {% else %} You didn't report how much time you spent on this task. If you'd like to help future students plan their time, please re-submit with an estimate of how many hours you spent. {% endif %}

{% if phase == "revision" and ps["status"]["state"] not in ("revisable", "final") %}

{{ps["id"]}} is not accepting revisions yet. {{other_link|safe}}

{% elif ps["status"]["state"] == "unreleased" %}

{{ps["id"]}} has not yet been released.

{% elif ps["status"]["state"] == "released" %}

{{ps["id"]}} is not due yet. Feedback will be available shortly after the deadline. {# TODO: If a significant review period is added, mention that here. #}

{% elif ps["status"]["state"] == "under_review" %}

Feedback for {{ps["id"]}} is being reviewed and will be available soon. {# TODO: Figure out & display when #}

{% elif ps["status"]["state"] == "revisable" %}

{% if task["feedback"] == "missing" %} We have not generated any feedback for this task. {% if task["codder_status"] == None %} {% if phase == "revision" %} We have not yet received a revision from you for this task. You can also: {{other_link|safe}} {% else %} We never received an initial submission from you for this task.
{# TODO: Pull revision credit cap from data #} You may still submit a revision for up to 95% credit until the revision period expires. Return to the dashboard to do so.
If you did attempt an initial submission, please reach out to {{support_link|safe}} to resolve this.
You can also: {{other_link|safe}} {% endif %} {% else %} We received a {{item}} for this task, but it could not be properly evaluated. Please reach out to {{support_link|safe}} to resolve this. {% endif %} {% elif task["feedback"] == None %} Feedback for this {{item}} is not available yet, although it normally should be. Please try refreshing the page, check for a relevant announcement, and reach out to {{support_link|safe}} about this if there is none. {% endif %} {# No message if feedback exists: messages below will describe the situation in detail #}

{% elif ps["status"]["state"] == "final" %}

{% if task["feedback"] == "missing" %} We have not generated any feedback for this {{item}}. {% if task["codder_status"] == None %} We never received a {{item}} from you for this task.
Please reach out to {{support_link|safe}} if you believe this is an error. You can also: {{other_link|safe}}. {% else %} We received a submission for this task, but it could not be properly evaluated. Please reach out to {{support_link|safe}} to resolve this. {% endif %} {% elif task["feedback"] == None %} Feedback for this {{item}} is not available yet, although it normally should be. Please try refreshing the page, check for a relevant announcement, and reach out to {{support_link|safe}} about this if there is none. {% endif %}

{# No message if feedback exists: messages below will describe the situation in detail #} {% endif %}

{% if task["submitted"] %} Your most recent {{item}} {% if task["submitted_at"] == None %} was received, but we're not sure when. {% else %} was received {{task["submitted_at"]|fmt_datetime}} ({{task["codder_elapsed"]|seconds|fuzzy_time}} ago) . {% endif %} {% else %} You do not yet have an evaluated {{item}} for this task (see below). {% endif %}

{% if ps["status"]["state"] in ("revisable", "final") %} {% if task["codder_status"] in ("initial", "in_progress") %} Your {{item}} is still being evaluated; please refresh this page to check for feedback again. Feedback should be ready within at most {{task["codder_timeout"]|seconds|integer}} seconds ({{ (task["codder_timeout"] - task["codder_elapsed"]) |seconds |integer }} seconds from now) but will hopefully be ready by the time you read this. {% if task["codder_elapsed"] > task["codder_timeout"] %} Because the evaluation has taken so long, something may have gone wrong. Please reach out to {{support_link|safe}} for help. {% endif %} {% elif task["codder_status"] in ("error", "expired") %} Your {{item}} could not be evaluated, {% if task["codder_status"] == "expired" %} because evaluation took longer than {{task["codder_timeout"]|seconds|integer}} seconds. {% else %} because there was an error during evaluation. {% endif %} Normally, this indicates a problem with the evaluation system, not with your code, and you should contact {{support_link|safe}} for help. However, please try running your code first to make sure that it runs in a timely fashion without crashing, as it is possible that your code is the source of the problem. Feel free to reach out to {{support_link|safe}} in any case to get help with the issue. {% elif task["codder_status"] == "completed" %} We have finished evaluating your {{item}}, and the results are shown below. {% elif task["codder_status"] == None %} {% set eval = task["feedback_summary"]["report"]["evaluation"] %} {% if eval != "not evaluated" %} Your evaluation for this {{item}} was: {{eval|safe}}
However, we were unable to retrieve detailed feedback. Please try refreshing this page, or reach out to {{support_link|safe}} if that doesn't help. {% else %} We have not received any {{item}} from you for this task.
If this is unexpected, feel free to reach out to {{support_link|safe}} for help. You can also: {{other_link|safe}} {% endif %} {% else %} Evaluation of your {{item}} resulted in an unexpected status {{task["codder_status"]}}. Please reach out to {{support_link|safe}} for help. {% endif %} {% elif task["codder_status"] in ("initial", "in_progress") %} {# pset isn't final, but Codder is inflight (might be warnings) #} Your most recent {{item}} is still being evaluated; please refresh this page to check for feedback again. The initial check should be done within at most {{task["codder_timeout"]|seconds|integer}} seconds ({{ (task["codder_timeout"] - task["codder_elapsed"]) |seconds |integer }} seconds from now) and will hopefully be done by the time you read this. {% if task["codder_elapsed"] > task["codder_timeout"] %} Because the evaluation has taken so long, something may have gone wrong. Please reach out to {{support_link|safe}} for help. {% endif %} {% else %} {# pset status isn't final... #} Full feedback on {{ps["id"]}} is not yet available. {% endif %}

{% set show_feedback = ps["status"]["state"] in ("revisable", "final") %} {% if ( (show_feedback or is_admin) and task["feedback"] not in ("missing", None) and task["codder_status"] == "completed" ) %} {% if phase == "revision" %} Note: the feedback below analyzes your overall performance on this task. However, because this is a revision, your score will be capped at 95%, even if the feedback below says otherwise. Your final score for this task will be the higher of your capped revision score and your score for your initial submission. {# TODO: Variable revision cap here. #} {% endif %} {% if is_admin and not show_feedback %} Note: This feedback will not be shown to the student yet, but is being shown to you because you are an admin. {% endif %} {% set urls = task["feedback"]["urls"] %} {% set task = task["feedback"]["tasks"][task["id"]] %} {% include "rubric_task.html" %} {% elif is_admin %} Admin note: Full feedback for this user on this task does not exist. {% if task["feedback"] in ("missing", None) %}

The feedback object is: {{task["feedback"]}}.

{% endif %}

The Codder status for this submission is {{task["codder_status"]}}.

{% endif %}
{% endblock %}