$context = establishContext(); if (!$context->valid) { die("Basic LTI Session failure " . $_SERVER['PHP_SELF']); } if (isset($_REQUEST['cancel'])) { $context->redirect('index.php'); } if (!$context->isInstructor()) { die("You must be an instrcutor to grade - doh!"); } if (!isset($_REQUEST['response_id'])) { die("Missing required parameter"); } require_once $CFG->dirroot . '/db.php'; require_once $CFG->dirroot . '/pdo_util.php'; setupPrimaryKeys($db, $context); // Security Note: // This will only work if we are grading the response for the resource associated // With this context/launch/ etc - We take the ResourceID from the context $sql = sprintf("SELECT * FROM Responses JOIN LTI_Users JOIN LTI_Resources \n ON Responses.user_id = LTI_Users.id AND Responses.resource_id = LTI_Resources.id\n WHERE resource_id=%s AND Responses.id=%s\n", $db->quote($context->getResourceID()), $db->quote($_REQUEST['response_id'])); $q = @$db->query($sql); $response = $q->fetch(); if (!$response) { die("Response not found"); } // print "\n<pre>\n"; print_r($response); print "\n</pre>\n"; if ($_POST['grade'] || $_POST['note']) { if ($_POST['grade'] != $response['grade'] || $_POST['note'] != $response['note']) { $sql = sprintf("UPDATE Responses SET note=%s, grade=%s WHERE id=%s\n", $db->quote($_POST['note']), $db->quote($_POST['grade']), $db->quote($_REQUEST['response_id'])); $rows = $db->exec($sql); if ($rows < 1) {
$db->query('alter table Events add primary key(id)'); $db->query('alter table Persons add primary key(id)'); $db->query('alter table Countries add primary key(iso2)'); $db->query('alter table Competitions add primary key(id)'); echo "Setup primary keys.<br>"; } function generateResults($db) { // Setup AllResults table for use with generating statistics $db->query('drop table if exists AllResults'); $db->query('create view ResultsView as select competitionId,eventId,personId,best,average,countryId,gender from Results join Persons on Results.personId=Persons.id'); $db->query('create view ResultsViewCountries as select competitionId,eventId,personId,best,average,countryId, Countries.iso2 as countryCode,gender from ResultsView join Countries on ResultsView.countryId=Countries.id'); $db->query('create table AllResults (competitionId varchar(32), eventId varchar(6), personId varchar(10), best int(11), average int(11), countryId varchar(50), countryCode char(2), gender char(1), year smallint(5) unsigned)'); $db->query('insert into AllResults select competitionId,eventId,personId,best,average,countryId,countryCode,gender,year from ResultsViewCountries join Competitions on ResultsViewCountries.competitionId=Competitions.id'); $db->query('drop view ResultsViewCountries'); $db->query('drop view ResultsView'); echo "Setup AllResults table.<br>"; } $db = getDb(); stripTables($db); dropTables($db); setupPrimaryKeys($db); generateResults($db); echo "Import script finished.<br>"; $db->close();