From 0ffa2c950e646ac7ba9086fc1a6c4d9a4981f4ae Mon Sep 17 00:00:00 2001 From: mattc-catalyst Date: Mon, 27 Aug 2007 23:05:42 +0000 Subject: [PATCH] MDL-10888: groupings - mod/lesson - updated to support groupings --- mod/lesson/essay.php | 26 +++++++++++++++++++------- mod/lesson/mod_form.php | 6 +++++- mod/lesson/report.php | 26 +++++++++++++++++++------- 3 files changed, 43 insertions(+), 15 deletions(-) diff --git a/mod/lesson/essay.php b/mod/lesson/essay.php index 2d0dbbc56b..bdccd0653f 100644 --- a/mod/lesson/essay.php +++ b/mod/lesson/essay.php @@ -30,13 +30,25 @@ // Get only the attempts that are in response to essay questions if ($essayattempts = get_records_select('lesson_attempts', 'pageid IN('.implode(',', array_keys($pages)).')')) { // Get all the users who have taken this lesson, order by their last name - if (!$users = get_records_sql("SELECT u.* - FROM {$CFG->prefix}user u, - {$CFG->prefix}lesson_attempts a - WHERE a.lessonid = '$lesson->id' and - u.id = a.userid - ORDER BY u.lastname")) { - error('Error: could not find users'); + if (!empty($CFG->enablegroupings) && !empty($cm->groupingid)) { + $sql = "SELECT DISTINCT u.* + FROM {$CFG->prefix}lesson_attempts a + INNER JOIN {$CFG->prefix}user u ON u.id = a.userid + INNER JOIN {$CFG->prefix}groups_members gm ON gm.userid = u.id + INNER JOIN {$CFG->prefix}groupings_groups gg ON gm.groupid = {$cm->groupingid} + WHERE a.lessonid = '$lesson->id' + ORDER BY u.lastname"; + } else { + $sql = "SELECT u.* + FROM {$CFG->prefix}user u, + {$CFG->prefix}lesson_attempts a + WHERE a.lessonid = '$lesson->id' and + u.id = a.userid + ORDER BY u.lastname"; + } + if (!$users = get_records_sql($sql)) { + $mode = 'none'; // not displaying anything + lesson_set_message(get_string('noonehasanswered', 'lesson')); } } else { $mode = 'none'; // not displaying anything diff --git a/mod/lesson/mod_form.php b/mod/lesson/mod_form.php index 68c3506da1..43e790693b 100644 --- a/mod/lesson/mod_form.php +++ b/mod/lesson/mod_form.php @@ -278,7 +278,11 @@ class mod_lesson_mod_form extends moodleform_mod { $mform->setDefault('lessondefault', 0); //------------------------------------------------------------------------------- - $this->standard_coursemodule_elements(array('groups'=>false)); + $features = new stdClass; + $features->groups = false; + $features->groupings = true; + $features->groupmembersonly = true; + $this->standard_coursemodule_elements($features); //------------------------------------------------------------------------------- // buttons $this->add_action_buttons(); diff --git a/mod/lesson/report.php b/mod/lesson/report.php index ac4132b06f..bc6b6f9156 100644 --- a/mod/lesson/report.php +++ b/mod/lesson/report.php @@ -17,13 +17,25 @@ $nothingtodisplay = false; list($cm, $course, $lesson) = lesson_get_basics($id); - - if (! $students = get_records_sql("SELECT u.* - FROM {$CFG->prefix}user u, - {$CFG->prefix}lesson_attempts a - WHERE a.lessonid = '$lesson->id' and - u.id = a.userid - ORDER BY u.lastname")) { + + if (!empty($CFG->enablegroupings) && !empty($cm->groupingid)) { + $sql = "SELECT DISTINCT u.* + FROM {$CFG->prefix}lesson_attempts a + INNER JOIN {$CFG->prefix}user u ON u.id = a.userid + INNER JOIN {$CFG->prefix}groups_members gm ON gm.userid = u.id + INNER JOIN {$CFG->prefix}groupings_groups gg ON gm.groupid = {$cm->groupingid} + WHERE a.lessonid = '$lesson->id' + ORDER BY u.lastname"; + } else { + $sql = "SELECT u.* + FROM {$CFG->prefix}user u, + {$CFG->prefix}lesson_attempts a + WHERE a.lessonid = '$lesson->id' and + u.id = a.userid + ORDER BY u.lastname"; + } + + if (! $students = get_records_sql($sql)) { $nothingtodisplay = true; } -- 2.39.5