if (!isset($assessment)) {
     $query = "  SELECT a.*, b.`handler`, c.`organisation_id` FROM `assessments` as a\n\t\t\t\t\tLEFT JOIN `assessment_marking_schemes` as b\n\t\t\t\t\tON a.`marking_scheme_id` = b.`id`\n\t\t\t\t\tLEFT JOIN `courses` as c\n\t\t\t\t\tON a.`course_id` = c.`course_id`\n\t\t\t\t\tWHERE a.`assessment_id` = " . $db->qstr($ASSESSMENT_ID) . "\n\t\t\t\t\tAND a.`active` = '1'";
     $assessment = $db->GetRow($query);
     if (!isset($assessment) || !is_array($assessment) || !(count($assessment) >= 1)) {
         echo "Error! Assessment not found.";
         application_log("error", "Failed to provide a valid assessment identifier when trying to AJAX edit.");
         exit;
     }
 }
 if (!$ENTRADA_ACL->amIAllowed(new GradebookResource($assessment["course_id"], $assessment["organisation_id"]), "update")) {
     echo "Permissions Error!";
     application_log("error", "User tried to edit grades for an assessment without permission.");
     exit;
 }
 // Format grade value for insertion or update. If it comes back as blank, then delete.
 $GRADE_VALUE = get_storage_grade($grade_value, $assessment);
 // Grade or assessment has been found if it has been specified,
 // Delete an exisiting grade if it was cleared
 if ($mode == "delete" || $GRADE_VALUE === "") {
     $query = "DELETE FROM `assessment_grades` WHERE `assessment_grades`.`proxy_id` = " . $db->qstr($grade["proxy_id"]) . " AND `assessment_grades`.`assessment_id` = " . $db->qstr($grade["assessment_id"]);
     if ($db->Execute($query)) {
         echo "-";
     } else {
         echo "Error! Grade not deleted.";
         application_log("error", "Failed to delete grade when AJAX editing. DB said [" . $db->ErrorMsg() . "]");
     }
 } else {
     // If a grade was specified in the request (update mode), update it.
     if ($mode == "update") {
         $grade["value"] = $GRADE_VALUE;
         $mode = "UPDATE";
         }
         $valid_value = true;
     } elseif (is_numeric($temp_value) && $assessment["handler"] == "Boolean" && $grade_threshold) {
         $valid_value = true;
         if ((int) $temp_value >= $grade_threshold) {
             $temp_value = 100;
         } else {
             $temp_value = 0;
         }
     }
     $assessment["numeric_grade_points_total"] = 100;
 } elseif ($assessment["handler"] == "Percentage") {
     $assessment["numeric_grade_points_total"] = 100;
 }
 if ((!in_array($assessment["handler"], array("Boolean", "CompleteIncomplete")) || (int) $temp_value || $temp_value === 0) && $temp_value <= $assessment["numeric_grade_points_total"] && ((string) trim($preserved_input) == (string) $temp_value || $temp_value || $temp_value === 0)) {
     $PROCESSED["value"] = get_storage_grade($temp_value, $assessment);
     $valid_value = true;
 }
 if ($stud_num && isset($temp_value) && ($temp_value || $temp_value === false || $temp_value === 0.0 || $temp_value === 0)) {
     $query = "SELECT * FROM `" . AUTH_DATABASE . "`.`user_data` WHERE `number` = " . $db->qstr($stud_num);
     $user = $db->GetRow($query);
     if ($user) {
         $query = "SELECT * FROM `group_members` WHERE `group_id` = " . $db->qstr($GROUP) . " AND `proxy_id` = " . $db->qstr($user["id"]) . " AND `member_active` = '1'";
         $member = $db->GetRow($query);
         if ($member) {
             $PROCESSED["proxy_id"] = $member["proxy_id"];
             $member_found = true;
         }
         if ($member_found) {
             if ($valid_value) {
                 $query = "SELECT * FROM `assessment_grades` WHERE `assessment_id` = " . $db->qstr($ASSESSMENT_ID) . " AND `proxy_id` = " . $db->qstr($member["proxy_id"]);