$def with (course, tasks, users, aggregations, data, statistics, old_input, allowed_sort, allowed_sort_name, valid_formats, msg, show_collapse) $# $# This file is part of INGInious. See the LICENSE and the COPYRIGHTS files for $# more information about the licensing of this file. $# $ num_tags_filter = 4 $var title: $:_("View submissions") $var Column: $:template_helper.call('course_admin_menu',course=course,current='submissions') $ is_admin = user_manager.has_admin_rights_on_course(course) $ use_classrooms = course.use_classrooms() $def NavbarF(): $var Navbar: $:NavbarF() $for m in msg:

$:_("View submissions")

$if len(old_input.task) == 1: $ task_name = tasks[old_input.task[0]].get_name(user_manager.session_language()) $if len(old_input.user) == 1 and len(old_input.aggregation) == 0: $ complete_name = users[old_input.user[0]][0] if users[old_input.user[0]] != None and len(users[old_input.user[0]]) > 0 else 'Unknow'

$:_('Submissions for task "{0}" - {1} ({2})').format(task_name, complete_name, old_input.user[0])

$if len(old_input.aggregation) == 1 and len(old_input.user) == 0: $for c in aggregations: $if str(c['_id']) in old_input['aggregation']:

$:_('Submissions for the task "{0}" - {1}').format(task_name, c["description"])

$ list_checkboxes = [("eval", _("Only evaluation submissions")), $ ("show_tags", _("Show tags")), $ ("show_id", _("Show submission id")), $ ("show_task_name", _("Show task name")), $ ("show_stud_name", _("Show student name"))]
$for c in list_checkboxes:
$c[1]
$if "show_tags" in old_input: $for i in range(num_tags_filter):
$if statistics != None and len(data) > 0:
$:_("Submissions statistics")
$for stat in statistics[0]:
$stat[0] $stat[1]
$if len(statistics) >= 2 and len(statistics[1]) > 0:
$:_("Tag statistics")
$for (tag, v_total, v_best) in statistics[1]: $ color = "badge alert-danger" if tag.is_misconception() else "badge alert-info" $# The number of decimal digits. (10 for 1 decimal, 100 for two decimals, ...) $ accuracy = 10 $ val_displayed_total = int(v_total*accuracy)/accuracy $ val_displayed_best = int(v_best*accuracy)/accuracy $# If the displayed value is 0 but in fact the value is not 0 (e.g. 0.00001), we display the '>' character because we need to know that there is at least one tag True. $if val_displayed_total == 0 and v_total != 0: $ val_displayed_total = "> " + str(val_displayed_total) $if val_displayed_best == 0 and v_best != 0: $ val_displayed_best = "> " + str(val_displayed_best)
$:_("Tag") $:_("All submissions") $:_("Best submissions")
$:_(tag.get_name(user_manager.session_language()))$val_displayed_total % $val_displayed_best %
$if "show_stud_name" in old_input: $else: $if "show_task_name" in old_input: $else: $if "show_id" in old_input: $if "show_tags" in old_input: $for submission in data: $ succeeded = "result" in submission and submission["result"] == "success" $if "show_task_name" in old_input: $else: $if "show_id" in old_input: $if "show_tags" in old_input:
$:_("student name")$:_("username")$:_("task name")$:_("taskid")$:_("id") $:_("submitted on") $:_("result")$:_("tags")
$if is_admin:
$if "best" in submission and submission["best"]: $for user in submission["username"]: $if "show_stud_name" in old_input: $(users[user][0] if users[user] != None and len(users[user]) > 0 else '?')
$else: $user
$tasks[submission["taskid"]].get_name(user_manager.session_language())$submission["taskid"]$submission["_id"] $submission["submitted_on"].strftime("%d/%m/%Y %H:%M:%S") $if succeeded: $:_("Succeeded") $elif submission['status'] == 'waiting': $:_("Waiting") $else: $:_("Failed") ($submission.get("grade",0.0)%) $for key, tag in course.get_tags().items(): $if tag.get_type() == 0 : $if "tests" in submission and tag.get_id() in submission["tests"] and submission["tests"][tag.get_id()]: $:_(tag.get_name(user_manager.session_language())) $else: $:_(tag.get_name(user_manager.session_language())) $elif tag.get_type() == 1: $if "tests" in submission and tag.get_id() in submission["tests"] and submission["tests"][tag.get_id()]: $:_(tag.get_name(user_manager.session_language())) $# Auto-tags not defined in task $if "tests" in submission: $for tag in submission["tests"]: $if tag.startswith("*auto-tag-"): $if len(submission["tests"][tag]) > 30: $submission["tests"][tag][:30]… $else: $submission["tests"][tag]
$if is_admin:
$if is_admin: