Index: lib.php =================================================================== RCS file: /cvsroot/moodle/moodle/mod/assignment/lib.php,v retrieving revision 1.515.2.15 diff -u -r1.515.2.15 lib.php --- lib.php 15 Mar 2012 12:00:05 -0000 1.515.2.15 +++ lib.php 23 Mar 2012 18:36:31 -0000 @@ -3363,13 +3363,16 @@ function assignment_get_all_submissions($assignment, $sort="", $dir="DESC") { /// Return all assignment submissions by ENROLLED students (even empty) global $CFG, $DB; - + $sortmethod=0; if ($sort == "lastname" or $sort == "firstname") { - $sort = "u.$sort $dir"; + $sort = "$sort $dir"; + $sortmethod =0; } else if (empty($sort)) { - $sort = "a.timemodified DESC"; + $sort = "timemodified DESC"; + $sortmethod=1; } else { - $sort = "a.$sort $dir"; + $sort = "$sort $dir"; + $sortmethod=1; } /* not sure this is needed at all since assignment already has a course define, so this join? @@ -3378,12 +3381,27 @@ $select = ''; }*/ - 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)); - + $course = $DB->get_record("course", array("id"=>$assignment->course)); + $userenrols= $DB->get_records_sql("SELECT ue.userid FROM {user_enrolments} ue , {enrol} e WHERE e.courseid=? AND ue.enrolid=e.id",array($course->id)); + $i=0; + $userids =array(); + foreach($userenrols as $userenrol){ + $userids[$i]= $userenrol->userid; + $i++; + } + + if($sortmethod!=0){ + return $DB->get_records_list('assignment_submissions','userid',$userids,$sort); + }else{ + $users = $DB->get_records_list("user","id",$userids,$sort); + $i=0; + $userids =array(); + foreach($users as $user){ + $userids[$i]= $user->id; + $i++; + } + return $DB->get_records_list('assignment_submissions','userid',$userids); + } } /**