From 9ad5c91fa9b1f1605fdf9057d5c180dbd16175b9 Mon Sep 17 00:00:00 2001 From: stronk7 Date: Thu, 1 Feb 2007 23:55:05 +0000 Subject: [PATCH] Delete some non cros-db boolean uses from queries, delegating them to PHP. MDL-8164 Merged from MOODLE_17_STABLE --- mod/assignment/lib.php | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/mod/assignment/lib.php b/mod/assignment/lib.php index df53f36252..294e1364d2 100644 --- a/mod/assignment/lib.php +++ b/mod/assignment/lib.php @@ -835,10 +835,12 @@ class assignment_base { $users = get_course_users($course->id); } - $select = 'SELECT u.id, u.id, u.firstname, u.lastname, u.picture,'. - 's.id AS submissionid, s.grade, s.submissioncomment, s.timemodified, s.timemarked, ((s.timemarked > 0) AND (s.timemarked >= s.timemodified)) AS status '; + $select = 'SELECT u.id, u.id, u.firstname, u.lastname, u.picture, + s.id AS submissionid, s.grade, s.submissioncomment, + s.timemodified, s.timemarked '; $sql = 'FROM '.$CFG->prefix.'user u '. - 'LEFT JOIN '.$CFG->prefix.'assignment_submissions s ON u.id = s.userid AND s.assignment = '.$this->assignment->id.' '. + 'LEFT JOIN '.$CFG->prefix.'assignment_submissions s ON u.id = s.userid + AND s.assignment = '.$this->assignment->id.' '. 'WHERE u.id IN ('.implode(',', array_keys($users)).') '; require_once($CFG->libdir.'/tablelib.php'); @@ -850,6 +852,8 @@ class assignment_base { $nextid = 0; if (($auser = get_records_sql($select.$sql.$sort, $offset+1, 1)) !== false) { $nextuser = array_shift($auser); + /// Calculate user status + $nextuser->status = ($nextuser->timemarked > 0) && ($nextuser->timemarked >= $nextuser->timemodified); $nextid = $nextuser->id; } @@ -1098,9 +1102,12 @@ class assignment_base { $sort = ' ORDER BY '.$sort; } - $select = 'SELECT u.id, u.id, u.firstname, u.lastname, u.picture, s.id AS submissionid, s.grade, s.submissioncomment, s.timemodified, s.timemarked, ((s.timemarked > 0) AND (s.timemarked >= s.timemodified)) AS status '; + $select = 'SELECT u.id, u.id, u.firstname, u.lastname, u.picture, + s.id AS submissionid, s.grade, s.submissioncomment, + s.timemodified, s.timemarked '; $sql = 'FROM '.$CFG->prefix.'user u '. - 'LEFT JOIN '.$CFG->prefix.'assignment_submissions s ON u.id = s.userid AND s.assignment = '.$this->assignment->id.' '. + 'LEFT JOIN '.$CFG->prefix.'assignment_submissions s ON u.id = s.userid + AND s.assignment = '.$this->assignment->id.' '. 'WHERE '.$where.'u.id IN ('.implode(',', array_keys($users)).') '; $table->pagesize($perpage, count($users)); @@ -1115,6 +1122,8 @@ class assignment_base { if (($ausers = get_records_sql($select.$sql.$sort, $table->get_page_start(), $table->get_page_size())) !== false) { foreach ($ausers as $auser) { + /// Calculate user status + $auser->status = ($auser->timemarked > 0) && ($auser->timemarked >= $auser->timemodified); $picture = print_user_picture($auser->id, $course->id, $auser->picture, false, true); if (empty($auser->submissionid)) { @@ -1173,8 +1182,10 @@ class assignment_base { } } - if ($auser->status === NULL) { + if (empty($auser->status)) { /// Confirm we have exclusively 0 or 1 $auser->status = 0; + } else { + $auser->status = 1; } $buttontext = ($auser->status == 1) ? $strupdate : $strgrade; -- 2.39.5