* @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!!
} 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 '-';
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
}
// 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;
}
* @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);
$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));
}
*/
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";
$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));
}
*
*/
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;
}
* 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)
}
function assignment_print_overview($courses, &$htmlarray) {
-
- global $USER, $CFG;
+ global $USER, $CFG, $DB;
if (empty($courses) || !is_array($courses) || count($courses) == 0) {
return array();
$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++;
}
}
}
} 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) {
* @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');
}
// 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?
$submission->timemodified = time();
}
- if (! update_record('assignment_submissions', $submission)) {
+ if (! $DB->update_record('assignment_submissions', $submission)) {
return false;
}
}
function update_submission($data) {
- global $CFG, $USER;
+ global $CFG, $USER, $DB;
$submission = $this->get_submission($USER->id, true);
$update->data2 = $data->format;
$update->timemodified = time();
- if (!update_record('assignment_submissions', $update)) {
+ if (!$DB->update_record('assignment_submissions', $update)) {
return false;
}
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');
}
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
$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');
}
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);
}
function upload_file() {
- global $CFG, $USER;
+ global $CFG, $USER, $DB;
$mode = optional_param('mode', '', PARAM_ALPHA);
$offset = optional_param('offset', 0, PARAM_INT);
$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);
}
function finalize() {
- global $USER;
+ global $USER, $DB;
$confirm = optional_param('confirm', 0, PARAM_BOOL);
$returnurl = 'view.php?id='.$this->cm->id;
$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);
}
function finalizeclose() {
+ global $DB;
+
$userid = optional_param('userid', 0, PARAM_INT);
$mode = required_param('mode', PARAM_ALPHA);
$offset = required_param('offset', PARAM_INT);
$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);
}
function unfinalize() {
+ global $DB;
$userid = required_param('userid', PARAM_INT);
$mode = required_param('mode', PARAM_ALPHA);
$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);
$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'));
function delete_file() {
- global $CFG;
+ global $CFG, $DB;
$file = required_param('file', PARAM_FILE);
$userid = required_param('userid', PARAM_INT);
}
$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'));
$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);
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");
}
function upload() {
-
- global $CFG, $USER;
+ global $CFG, $USER, $DB;
require_capability('mod/assignment:submit', get_context_instance(CONTEXT_MODULE, $this->cm->id));
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);
$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);