From 000cc405ba83502559d8de014775dff71de12bcb Mon Sep 17 00:00:00 2001 From: moodler Date: Fri, 21 Mar 2003 14:07:25 +0000 Subject: [PATCH] Hack from Roberto Pinna (Bobo) to add sorting when viewing submissions Might need some tidying up still but it's functional .. --- mod/assignment/lib.php | 16 +++++++++++++--- mod/assignment/submissions.php | 19 +++++++++++++++---- 2 files changed, 28 insertions(+), 7 deletions(-) diff --git a/mod/assignment/lib.php b/mod/assignment/lib.php index bdcb607ab1..12bd5b92e7 100644 --- a/mod/assignment/lib.php +++ b/mod/assignment/lib.php @@ -233,16 +233,26 @@ function assignment_log_info($log) { AND u.id = '$log->userid'"); } -function assignment_get_all_submissions($assignment) { +function assignment_get_all_submissions($assignment, $sort="timemodified", $dir="DESC") { /// Return all assignment submissions by ENROLLED students global $CFG; + + if ($sort == "lastname" or $sort == "firstname") { + $sort = "u.$sort $dir"; + } else if (empty($sort)) { + $sort = "a.timemodified DESC"; + } else { + $sort = "a.$sort $dir"; + } return get_records_sql("SELECT a.* FROM {$CFG->prefix}assignment_submissions a, - {$CFG->prefix}user_students s + {$CFG->prefix}user_students s, + {$CFG->prefix}user u WHERE a.userid = s.userid + AND u.id = a.userid AND s.course = '$assignment->course' AND a.assignment = '$assignment->id' - ORDER BY a.timemodified DESC"); + ORDER BY $sort"); } function assignment_get_users_done($assignment) { diff --git a/mod/assignment/submissions.php b/mod/assignment/submissions.php index 5f7d5c7a77..132bd36093 100644 --- a/mod/assignment/submissions.php +++ b/mod/assignment/submissions.php @@ -46,7 +46,7 @@ } /// Make some easy ways to reference submissions - if ($submissions = assignment_get_all_submissions($assignment)) { + if ($submissions = assignment_get_all_submissions($assignment, $sort)) { foreach ($submissions as $submission) { $submissionbyuser[$submission->userid] = $submission; } @@ -65,7 +65,7 @@ } if (isset($newsubmission)) { // Get them all out again to be sure - $submissions = assignment_get_all_submissions($assignment); + $submissions = assignment_get_all_submissions($assignment, $sort); } @@ -106,7 +106,7 @@ } } } - $submissions = assignment_get_all_submissions($assignment); + $submissions = assignment_get_all_submissions($assignment,$sort); add_to_log($course->id, "assignment", "update grades", "submissions.php?id=$assignment->id", "$count users"); notify(get_string("feedbackupdated", "assignment", $count)); } else { @@ -117,8 +117,19 @@ $grades[$i] = $i; } - echo "
\n"; + // Submission sorting + print_simple_box_start("CENTER", "50%"); + echo "

"; + print_string("order"); + echo ": id&sort=lastname&dir=ASC\">".get_string("name")." - "; + echo "id\">".get_string("lastmodified")." - "; + echo "id&sort=grade\">".get_string("feedback").""; + echo "

"; + print_simple_box_end(); + print_spacer(8,1); + echo "\n"; + foreach ($submissions as $submission) { $user = $users[$submission->userid]; assignment_print_submission($assignment, $user, $submission, $teachers, $grades); -- 2.39.5