From: skodak Date: Thu, 5 Jun 2008 13:12:00 +0000 (+0000) Subject: MDL-15103 towards assignment dml conversion X-Git-Url: http://git.mjollnir.org/gw?a=commitdiff_plain;h=74d7d73538b9836be078801c52546261e53926c3;p=moodle.git MDL-15103 towards assignment dml conversion --- diff --git a/mod/assignment/lib.php b/mod/assignment/lib.php index 53f09a6f35..a24a57fc98 100644 --- a/mod/assignment/lib.php +++ b/mod/assignment/lib.php @@ -738,6 +738,7 @@ class assignment_base { * @return string User-friendly representation of grade */ function display_grade($grade) { + global $DB; static $scalegrades = array(); // Cache scales for each assignment - they might have different scales!! @@ -750,7 +751,7 @@ class assignment_base { } else { // Scale if (empty($scalegrades[$this->assignment->id])) { - if ($scale = get_record('scale', 'id', -($this->assignment->grade))) { + if ($scale = $DB->get_record('scale', array('id'=>-($this->assignment->grade)))) { $scalegrades[$this->assignment->id] = make_menu_from_list($scale->scale); } else { return '-'; @@ -1886,7 +1887,7 @@ class assignment_base { global $CFG, $DB; require_once($CFG->libdir.'/filelib.php'); - if (!count_records('assignment', 'course', $data->courseid, 'assignmenttype', $this->type)) { + if (!$DB->count_records('assignment', array('course'=>$data->courseid, 'assignmenttype'=>$this->type))) { return array(); // no assignments of this type present } @@ -2390,17 +2391,17 @@ function assignment_print_recent_activity($course, $viewfullnames, $timestart) { // do not use log table if possible, it may be huge - if (!$submissions = get_records_sql("SELECT asb.id, asb.timemodified, cm.id AS cmid, asb.userid, - u.firstname, u.lastname, u.email, u.picture - FROM {assignment_submissions} asb - JOIN {assignment} a ON a.id = asb.assignment - JOIN {course_modules} cm ON cm.instance = a.id - JOIN {modules} md ON md.id = cm.module - JOIN {user} u ON u.id = asb.userid - WHERE asb.timemodified > ? AND - a.course = ? AND - md.name = 'assignment' - ORDER BY asb.timemodified ASC", array($timestart, $course->id))) { + if (!$submissions = $DB->get_records_sql("SELECT asb.id, asb.timemodified, cm.id AS cmid, asb.userid, + u.firstname, u.lastname, u.email, u.picture + FROM {assignment_submissions} asb + JOIN {assignment} a ON a.id = asb.assignment + JOIN {course_modules} cm ON cm.instance = a.id + JOIN {modules} md ON md.id = cm.module + JOIN {user} u ON u.id = asb.userid + WHERE asb.timemodified > ? AND + a.course = ? AND + md.name = 'assignment' + ORDER BY asb.timemodified ASC", array($timestart, $course->id))) { return false; } @@ -2688,7 +2689,7 @@ function assignment_get_unmailed_submissions($starttime, $endtime) { * @return int The number of submissions */ function assignment_count_real_submissions($cm, $groupid=0) { - global $CFG; + global $CFG, $DB; $context = get_context_instance(CONTEXT_MODULE, $cm->id); @@ -2710,11 +2711,11 @@ function assignment_count_real_submissions($cm, $groupid=0) { $userlists = implode(',', $users); - return count_records_sql("SELECT COUNT('x') - FROM {$CFG->prefix}assignment_submissions - WHERE assignment = $cm->instance AND - timemodified > 0 AND - userid IN ($userlists)"); + return $DB->count_records_sql("SELECT COUNT('x') + FROM {assignment_submissions} + WHERE assignment = ? AND + timemodified > 0 AND + userid IN ($userlists)", array($cm->instance)); } @@ -2729,7 +2730,7 @@ function assignment_count_real_submissions($cm, $groupid=0) { */ function assignment_get_all_submissions($assignment, $sort="", $dir="DESC") { /// Return all assignment submissions by ENROLLED students (even empty) - global $CFG; + global $CFG, $DB; if ($sort == "lastname" or $sort == "firstname") { $sort = "u.$sort $dir"; @@ -2745,12 +2746,11 @@ function assignment_get_all_submissions($assignment, $sort="", $dir="DESC") { $select = ''; }*/ - return get_records_sql("SELECT a.* - FROM {$CFG->prefix}assignment_submissions a, - {$CFG->prefix}user u - WHERE u.id = a.userid - AND a.assignment = '$assignment->id' - ORDER BY $sort"); + return $DB->get_records_sql("SELECT a.* + FROM {assignment_submissions} a, {user} u + WHERE u.id = a.userid + AND a.assignment = ? + ORDER BY $sort", array($assignment->id)); } @@ -2766,9 +2766,9 @@ function assignment_get_all_submissions($assignment, $sort="", $dir="DESC") { * */ function assignment_get_coursemodule_info($coursemodule) { - global $CFG; + global $CFG, $DB; - if (! $assignment = get_record('assignment', 'id', $coursemodule->instance, '', '', '', '', 'id, assignmenttype, name')) { + if (! $assignment = $DB->get_record('assignment', array('id'=>$coursemodule->instance), 'id, assignmenttype, name')) { return false; } @@ -2815,7 +2815,6 @@ function assignment_types() { * Executes upgrade scripts for assignment types when necessary */ function assignment_upgrade_submodules() { - global $CFG; /// Install/upgrade assignment types (it uses, simply, the standard plugin architecture) @@ -2824,8 +2823,7 @@ function assignment_upgrade_submodules() { } function assignment_print_overview($courses, &$htmlarray) { - - global $USER, $CFG; + global $USER, $CFG, $DB; if (empty($courses) || !is_array($courses) || count($courses) == 0) { return array(); @@ -2877,11 +2875,12 @@ function assignment_print_overview($courses, &$htmlarray) { $submissions = 0; // init if ($students = get_users_by_capability($context, 'mod/assignment:submit', '', '', '', '', 0, '', false)) { foreach ($students as $student) { - if (record_exists_sql("SELECT id FROM {$CFG->prefix}assignment_submissions - WHERE assignment = $assignment->id AND - userid = $student->id AND - teacher = 0 AND - timemarked = 0")) { + if ($DB->record_exists_sql("SELECT id + FROM {assignment_submissions} + WHERE assignment = ? AND + userid = ? AND + teacher = 0 AND + timemarked = 0", array($assignment->id, $student->id))) { $submissions++; } } @@ -2892,10 +2891,11 @@ function assignment_print_overview($courses, &$htmlarray) { } } else { $sql = "SELECT * - FROM {$CFG->prefix}assignment_submissions - WHERE userid = '$USER->id' - AND assignment = '{$assignment->id}'"; - if ($submission = get_record_sql($sql)) { + FROM {assignment_submissions} + WHERE userid = ? + AND assignment = ?"; + $params = array($USER->id, $assignment->id); + if ($submission = $DB->get_record_sql($sql, $params)) { if ($submission->teacher == 0 && $submission->timemarked == 0) { $str .= $strsubmitted . ', ' . $strnotgradedyet; } else if ($submission->grade <= 0) { @@ -2987,15 +2987,19 @@ function assignment_get_types() { * @param string optional type */ function assignment_reset_gradebook($courseid, $type='') { - global $CFG; + global $CFG, $DB; - $type = $type ? "AND a.assignmenttype='$type'" : ''; + $params = array('courseid'=>$courseid); + if ($type) { + $type = "AND a.assignmenttype= :type"; + $params['type'] = $type; + } $sql = "SELECT a.*, cm.idnumber as cmidnumber, a.course as courseid - FROM {$CFG->prefix}assignment a, {$CFG->prefix}course_modules cm, {$CFG->prefix}modules m - WHERE m.name='assignment' AND m.id=cm.module AND cm.instance=a.id AND a.course=$courseid $type"; + FROM {assignment} a, {course_modules} cm, {modules} m + WHERE m.name='assignment' AND m.id=cm.module AND cm.instance=a.id AND a.course=:courseid $type"; - if ($assignments = get_records_sql($sql)) { + if ($assignments = $DB->get_records_sql($sql, $params)) { foreach ($assignments as $assignment) { assignment_grade_item_update($assignment, 'reset'); } diff --git a/mod/assignment/type/offline/assignment.class.php b/mod/assignment/type/offline/assignment.class.php index 49c32a730d..aeaf3e9b1d 100644 --- a/mod/assignment/type/offline/assignment.class.php +++ b/mod/assignment/type/offline/assignment.class.php @@ -38,7 +38,7 @@ class assignment_offline extends assignment_base { // needed for the timemodified override function process_feedback() { - global $CFG, $USER; + global $CFG, $USER, $DB; require_once($CFG->libdir.'/gradelib.php'); if (!$feedback = data_submitted()) { // No incoming data? @@ -85,7 +85,7 @@ class assignment_offline extends assignment_base { $submission->timemodified = time(); } - if (! update_record('assignment_submissions', $submission)) { + if (! $DB->update_record('assignment_submissions', $submission)) { return false; } diff --git a/mod/assignment/type/online/assignment.class.php b/mod/assignment/type/online/assignment.class.php index 6029b48f3a..f047d860b4 100644 --- a/mod/assignment/type/online/assignment.class.php +++ b/mod/assignment/type/online/assignment.class.php @@ -159,7 +159,7 @@ class assignment_online extends assignment_base { } function update_submission($data) { - global $CFG, $USER; + global $CFG, $USER, $DB; $submission = $this->get_submission($USER->id, true); @@ -169,7 +169,7 @@ class assignment_online extends assignment_base { $update->data2 = $data->format; $update->timemodified = time(); - if (!update_record('assignment_submissions', $update)) { + if (!$DB->update_record('assignment_submissions', $update)) { return false; } diff --git a/mod/assignment/type/online/file.php b/mod/assignment/type/online/file.php index 85018ec47c..2f84e052d8 100644 --- a/mod/assignment/type/online/file.php +++ b/mod/assignment/type/online/file.php @@ -11,15 +11,15 @@ print_error('invalidcoursemodule'); } - if (! $assignment = get_record("assignment", "id", $cm->instance)) { + if (! $assignment = $DB->get_record("assignment", array("id"=>$cm->instance))) { print_error('invalidid', 'assignment'); } - if (! $course = get_record("course", "id", $assignment->course)) { + if (! $course = $DB->get_record("course", array("id"=>$assignment->course))) { print_error('coursemisconf', 'assignment'); } - if (! $user = get_record("user", "id", $userid)) { + if (! $user = $DB->get_record("user", array("id"=>$userid))) { print_error('usermisconf', 'assignment'); } diff --git a/mod/assignment/type/upload/assignment.class.php b/mod/assignment/type/upload/assignment.class.php index 551b5bb761..0197090e2c 100644 --- a/mod/assignment/type/upload/assignment.class.php +++ b/mod/assignment/type/upload/assignment.class.php @@ -72,7 +72,7 @@ class assignment_upload extends assignment_base { function view_feedback($submission=NULL) { - global $USER, $CFG; + global $USER, $CFG, $DB; require_once($CFG->libdir.'/gradelib.php'); if (!$submission) { /// Get submission for this assignment @@ -104,7 +104,7 @@ class assignment_upload extends assignment_base { $graded_by = $grade->usermodified; /// We need the teacher info - if (!$teacher = get_record('user', 'id', $graded_by)) { + if (!$teacher = $DB->get_record('user', array('id'=>$graded_by))) { print_error('cannotfindteacher'); } @@ -502,14 +502,14 @@ class assignment_upload extends assignment_base { die; } - if ($data = $mform->get_data() and $action == 'savenotes') { + if ($data = $mform->get_data(false) and $action == 'savenotes') { $submission = $this->get_submission($USER->id, true); // get or create submission $updated = new object(); $updated->id = $submission->id; $updated->timemodified = time(); $updated->data1 = $data->text; - if (update_record('assignment_submissions', $updated)) { + if ($DB->update_record('assignment_submissions', $updated)) { add_to_log($this->course->id, 'assignment', 'upload', 'view.php?a='.$this->assignment->id, $this->assignment->id, $this->cm->id); redirect($returnurl); $submission = $this->get_submission($USER->id); @@ -564,7 +564,7 @@ class assignment_upload extends assignment_base { } function upload_file() { - global $CFG, $USER; + global $CFG, $USER, $DB; $mode = optional_param('mode', '', PARAM_ALPHA); $offset = optional_param('offset', 0, PARAM_INT); @@ -594,7 +594,7 @@ class assignment_upload extends assignment_base { $updated->id = $submission->id; $updated->timemodified = time(); - if (update_record('assignment_submissions', $updated)) { + if ($DB->update_record('assignment_submissions', $updated)) { add_to_log($this->course->id, 'assignment', 'upload', 'view.php?a='.$this->assignment->id, $this->assignment->id, $this->cm->id); $submission = $this->get_submission($USER->id); @@ -621,7 +621,7 @@ class assignment_upload extends assignment_base { } function finalize() { - global $USER; + global $USER, $DB; $confirm = optional_param('confirm', 0, PARAM_BOOL); $returnurl = 'view.php?id='.$this->cm->id; @@ -646,7 +646,7 @@ class assignment_upload extends assignment_base { $updated->data2 = ASSIGNMENT_STATUS_SUBMITTED; $updated->timemodified = time(); - if (update_record('assignment_submissions', $updated)) { + if ($DB->update_record('assignment_submissions', $updated)) { add_to_log($this->course->id, 'assignment', 'upload', //TODO: add finalize action to log 'view.php?a='.$this->assignment->id, $this->assignment->id, $this->cm->id); $submission = $this->get_submission($USER->id); @@ -663,6 +663,8 @@ class assignment_upload extends assignment_base { } function finalizeclose() { + global $DB; + $userid = optional_param('userid', 0, PARAM_INT); $mode = required_param('mode', PARAM_ALPHA); $offset = required_param('offset', PARAM_INT); @@ -679,7 +681,7 @@ class assignment_upload extends assignment_base { $updated->id = $submission->id; $updated->data2 = ASSIGNMENT_STATUS_CLOSED; - if (update_record('assignment_submissions', $updated)) { + if ($DB->update_record('assignment_submissions', $updated)) { add_to_log($this->course->id, 'assignment', 'upload', //TODO: add finalize action to log 'view.php?a='.$this->assignment->id, $this->assignment->id, $this->cm->id); $submission = $this->get_submission($userid, false, true); @@ -689,6 +691,7 @@ class assignment_upload extends assignment_base { } function unfinalize() { + global $DB; $userid = required_param('userid', PARAM_INT); $mode = required_param('mode', PARAM_ALPHA); @@ -696,14 +699,14 @@ class assignment_upload extends assignment_base { $returnurl = "submissions.php?id={$this->cm->id}&userid=$userid&mode=$mode&offset=$offset&forcerefresh=1"; - if (data_submitted('nomatch') + if (data_submitted() and $submission = $this->get_submission($userid) and $this->can_unfinalize($submission)) { $updated = new object(); $updated->id = $submission->id; $updated->data2 = ''; - if (update_record('assignment_submissions', $updated)) { + if ($DB->update_record('assignment_submissions', $updated)) { //TODO: add unfinalize action to log add_to_log($this->course->id, 'assignment', 'view submission', 'submissions.php?id='.$this->assignment->id, $this->assignment->id, $this->cm->id); $submission = $this->get_submission($userid); @@ -752,7 +755,7 @@ class assignment_upload extends assignment_base { $urlreturn = 'submissions.php'; $optionsreturn = array('id'=>$this->cm->id, 'offset'=>$offset, 'mode'=>$mode, 'userid'=>$userid); - if (!data_submitted('nomatch') or !$confirm) { + if (!data_submitted() or !$confirm) { $optionsyes = array ('id'=>$this->cm->id, 'file'=>$file, 'userid'=>$userid, 'confirm'=>1, 'action'=>'response', 'mode'=>$mode, 'offset'=>$offset); print_header(get_string('delete')); print_heading(get_string('delete')); @@ -780,7 +783,7 @@ class assignment_upload extends assignment_base { function delete_file() { - global $CFG; + global $CFG, $DB; $file = required_param('file', PARAM_FILE); $userid = required_param('userid', PARAM_INT); @@ -810,7 +813,7 @@ class assignment_upload extends assignment_base { } $dir = $this->file_area_name($userid); - if (!data_submitted('nomatch') or !$confirm) { + if (!data_submitted() or !$confirm) { $optionsyes = array ('id'=>$this->cm->id, 'file'=>$file, 'userid'=>$userid, 'confirm'=>1, 'sesskey'=>sesskey(), 'mode'=>$mode, 'offset'=>$offset); if (empty($mode)) { $this->view_header(get_string('delete')); @@ -833,7 +836,7 @@ class assignment_upload extends assignment_base { $updated = new object(); $updated->id = $submission->id; $updated->timemodified = time(); - if (update_record('assignment_submissions', $updated)) { + if ($DB->update_record('assignment_submissions', $updated)) { add_to_log($this->course->id, 'assignment', 'upload', //TODO: add delete action to log 'view.php?a='.$this->assignment->id, $this->assignment->id, $this->cm->id); $submission = $this->get_submission($userid); diff --git a/mod/assignment/type/upload/notes.php b/mod/assignment/type/upload/notes.php index 0ac6afec85..2817a3eaa9 100644 --- a/mod/assignment/type/upload/notes.php +++ b/mod/assignment/type/upload/notes.php @@ -13,15 +13,15 @@ print_error('invalidcoursemodule'); } - if (! $assignment = get_record('assignment', 'id', $cm->instance)) { + if (! $assignment = $DB->get_record('assignment', array('id'=>$cm->instance))) { print_error('invalidid', 'assignment'); } - if (! $course = get_record('course', 'id', $assignment->course)) { + if (! $course = $DB->get_record('course', array('id'=>$assignment->course))) { print_error('coursemisconf', 'assignment'); } - if (! $user = get_record('user', 'id', $userid)) { + if (! $user = $DB->get_record('user', array('id'=>$userid))) { print_error("invaliduserid"); } diff --git a/mod/assignment/type/uploadsingle/assignment.class.php b/mod/assignment/type/uploadsingle/assignment.class.php index cf71718524..12c13e4aa6 100644 --- a/mod/assignment/type/uploadsingle/assignment.class.php +++ b/mod/assignment/type/uploadsingle/assignment.class.php @@ -96,8 +96,7 @@ class assignment_uploadsingle extends assignment_base { function upload() { - - global $CFG, $USER; + global $CFG, $USER, $DB; require_capability('mod/assignment:submit', get_context_instance(CONTEXT_MODULE, $this->cm->id)); @@ -122,10 +121,10 @@ class assignment_uploadsingle extends assignment_base { if ($submission) { $submission->timemodified = time(); $submission->numfiles = 1; - $submission->submissioncomment = addslashes($submission->submissioncomment); + $submission->submissioncomment = $submission->submissioncomment; unset($submission->data1); // Don't need to update this. unset($submission->data2); // Don't need to update this. - if (update_record("assignment_submissions", $submission)) { + if ($DB->update_record("assignment_submissions", $submission)) { add_to_log($this->course->id, 'assignment', 'upload', 'view.php?a='.$this->assignment->id, $this->assignment->id, $this->cm->id); $submission = $this->get_submission($USER->id); @@ -139,7 +138,7 @@ class assignment_uploadsingle extends assignment_base { $newsubmission = $this->prepare_new_submission($USER->id); $newsubmission->timemodified = time(); $newsubmission->numfiles = 1; - if (insert_record('assignment_submissions', $newsubmission)) { + if ($DB->insert_record('assignment_submissions', $newsubmission)) { add_to_log($this->course->id, 'assignment', 'upload', 'view.php?a='.$this->assignment->id, $this->assignment->id, $this->cm->id); $submission = $this->get_submission($USER->id);