{% extends "contest.html" %} {% set page = "test_interface" %} {% block additional_js %} $(document).on("click", ".user_test_list tbody tr td.status .details", function (event) { var $this = $(this); var task_id = $this.parent().parent().parent().parent().attr("data-task"); var user_test_id = $this.parent().parent().attr("data-user-test"); var modal = $("#user_test_detail"); var modal_body = modal.children(".modal-body"); modal_body.html('
{% trans %}loading...{% endtrans %}
'); modal_body.load(utils.contest_url("tasks", task_id, "tests", user_test_id, "details")); modal.modal("show"); }); update_user_test_row = function (task_id, user_test_id, data) { var row = $(".user_test_list[data-task=\"" + task_id + "\"] tbody tr[data-user-test=\"" + user_test_id + "\"]"); row.attr("data-status", data["status"]); row.children("td.status").html(data["status_text"]); if (data["status"] == {{ UserTestResult.EVALUATED }}) { if (data["output"]) { var btn = row.children("td.output").children("a.btn"); btn.text('{% trans %}Download{% endtrans %}'); btn.removeClass("disabled"); btn.attr("href", utils.contest_url("tasks", task_id, "tests", user_test_id, "output")); } else { row.children("td.output").children("a.btn").text("{% trans %}N/A{% endtrans %}"); } if (data["time"] != null) { row.children("td.time").removeClass("undefined"); row.children("td.time").text(data["time"]); } if (data["memory"] != null) { row.children("td.memory").removeClass("undefined"); row.children("td.memory").text(data["memory"]); } } else if (data["status"] == {{ UserTestResult.COMPILATION_FAILED }}) { row.children("td.output").children("a.btn").text("{% trans %}N/A{% endtrans %}"); } else { schedule_update_user_test_row(task_id, user_test_id); } } schedule_update_user_test_row = function (task_id, user_test_id) { setTimeout(function () { $.get(utils.contest_url("tasks", task_id, "tests", user_test_id), function (data) { update_user_test_row(task_id, user_test_id, data); }); }, 2000); } $(document).ready(function () { $('.user_test_list tbody tr[data-status][data-status!="{{ UserTestResult.COMPILATION_FAILED }}"][data-status!="{{ UserTestResult.EVALUATED }}"]').each(function (idx, elem) { var $this = $(this); schedule_update_user_test_row($this.parent().parent().attr("data-task"), $this.attr("data-user-test")); }); }); {% endblock additional_js %} {% block core %}
{% for task in contest.tasks %} {% set task_type = get_task_type(dataset=task.active_dataset) %} {% if task_type.testable %}

{% trans %}Submit a test{% endtrans %}

{% if user_tests_left[task.id] is not none %}

{% trans user_tests_left=user_tests_left[task.id] %}You can submit {{ user_tests_left }} more test(s).{% endtrans %}

{% endif %}
{{ xsrf_form_html|safe }}
{% for filename in task.submission_format + task_type.get_user_managers() %}
{% endfor %}
{% if not (task.submission_format + task_type.get_user_managers())|any("endswith", ".%l") %}
{{ xsrf_form_html|safe }}
{% endif %}

{% trans %}Previous tests{% endtrans %}

{% set show_date = not user_tests[task.id]|map(attribute="timestamp")|all("today") %} {% if show_date %} {% else %} {% endif %} {% if show_date %} {% else %} {% endif %} {% for t in user_tests[task.id]|sort(attribute="timestamp")|reverse %} {# loop.revindex is broken: https://github.com/pallets/jinja/issues/794 #} {% set t_idx = user_tests[task.id]|length - loop.index0 %} {% set tr = t.get_result(t.task.active_dataset) or undefined %} {% include "user_test_row.html" %} {% else %} {% endfor %}
{% trans %}Date and time{% endtrans %}{% trans %}Time{% endtrans %}{% trans %}Status{% endtrans %} {% trans %}Execution time{% endtrans %} {% trans %}Memory used{% endtrans %} {% trans %}Input{% endtrans %} {% trans %}Output{% endtrans %} {% trans %}Files{% endtrans %}
{% trans %}no tests yet{% endtrans %}
{% endif %} {% endfor %}
{% endblock core %}