function upload_grades($pset, $text, $fname) { global $Conf; assert($pset->gitless_grades); $csv = new CsvParser($text); $csv->set_header($csv->next()); while ($line = $csv->next()) { if (($who = get($line, "github_username")) && $who !== "-") { $user = $Conf->user_by_query("github_username=?", [$who]); } else { if (($who = get($line, "seascode_username")) && $who !== "-") { $user = $Conf->user_by_query("seascode_username=?", [$who]); } else { if (($who = get($line, "huid")) && $who !== "-") { $user = $Conf->user_by_query("huid=?", [$who]); } else { if (($who = get($line, "username")) && $who !== "-") { $user = $Conf->user_by_query("github_username=? or seascode_username=? order by github_username=? desc limit 1", [$who, $who, $who]); } else { if (($who = get($line, "email")) && $who !== "-") { $user = $Conf->user_by_email($who); } else { if ($who = get($line, "name")) { list($first, $last) = Text::split_name($who); $user = $Conf->user_by_query("firstName like '?s%' and lastName=?", [$first, $last]); if ($user && $user->firstName != $first && !str_starts_with($user->firstName, "{$first} ")) { $user = null; } } else { continue; } } } } } } if ($user) { if (!save_grades($user, $pset, null, $line, true)) { $Conf->errorMsg("no grades set for “" . htmlspecialchars($who) . "”"); } } else { $Conf->errorMsg(htmlspecialchars($fname) . ":" . $csv->lineno() . ": unknown user “" . htmlspecialchars($who) . "”"); } } return true; }
function upload_grades($pset, $text, $fname) { global $Conf; assert($pset->gitless_grades); $csv = new CsvParser($text); $csv->set_header($csv->next()); while ($line = $csv->next()) { if (@$line["seascode_username"]) { $who = $line["seascode_username"]; $user = Contact::find_by_username($who); } else { if (@$line["email"]) { $who = $line["email"]; $user = Contact::find_by_email($who); } else { if (@$line["name"]) { $who = $line["name"]; list($first, $last) = Text::split_name($who); $user = Contact::find_by_query("firstName like '" . sqlqtrim($first) . "%' and lastName='" . sqlqtrim($last) . "'"); if ($user && $user->firstName != $first && !str_starts_with($user->firstName, "{$first} ")) { $user = null; } } else { continue; } } } if ($user) { if (!save_grades($user, $pset, null, $line, true)) { $Conf->errorMsg("no grades set for “" . htmlspecialchars($who) . "”"); } } else { $Conf->errorMsg(htmlspecialchars($fname) . ":" . $csv->lineno() . ": unknown user “" . htmlspecialchars($who) . "”"); } } return true; }