From 07aa20571206a504d9def6933921847c816b3516 Mon Sep 17 00:00:00 2001 From: mattc-catalyst Date: Tue, 28 Aug 2007 00:12:01 +0000 Subject: [PATCH] MDL-10888: groupings - mod/survey - updated to use groupings --- mod/survey/download.php | 4 ++-- mod/survey/graph.php | 8 +++++--- mod/survey/lib.php | 21 +++++++++++---------- mod/survey/mod_form.php | 6 +++++- mod/survey/report.php | 21 ++++++++++++--------- mod/survey/view.php | 11 ++++++----- 6 files changed, 41 insertions(+), 30 deletions(-) diff --git a/mod/survey/download.php b/mod/survey/download.php index ac60642e6d..60da14a72b 100644 --- a/mod/survey/download.php +++ b/mod/survey/download.php @@ -27,10 +27,10 @@ /// Check to see if groups are being used in this survey - $groupmode = groupmode($course, $cm); // Groups are being used + $groupmode = groups_get_activity_groupmode($cm); // Groups are being used if ($groupmode and $group) { - $users = get_group_users($group); + $users = groups_get_members($group); } else { $users = get_course_users($course->id); $group = false; diff --git a/mod/survey/graph.php b/mod/survey/graph.php index 0f1d6e5d4b..62e10d58cc 100644 --- a/mod/survey/graph.php +++ b/mod/survey/graph.php @@ -20,7 +20,7 @@ require_login($course->id, false, $cm); - $groupmode = groupmode($course, $cm); // Groups are being used + $groupmode = groups_get_activity_groupmode($cm); // Groups are being used $context = get_context_instance(CONTEXT_MODULE, $cm->id); if (!has_capability('mod/survey:readresponses', $context)) { @@ -36,8 +36,10 @@ } /// Check to see if groups are being used in this survey - if ($groupmode and $group) { - $users = get_group_users($group); + if ($group) { + $users = groups_get_members($group); + } else if (!empty($CFG->enablegroupings) && !empty($cm->groupingid)) { + $users = groups_get_grouping_members($cm->groupingid); } else { $users = get_course_users($course->id); $group = false; diff --git a/mod/survey/lib.php b/mod/survey/lib.php index 01521bfd04..1f42a9ca90 100644 --- a/mod/survey/lib.php +++ b/mod/survey/lib.php @@ -213,23 +213,24 @@ function survey_log_info($log) { AND u.id = '$log->userid'"); } -function survey_get_responses($surveyid, $groupid) { +function survey_get_responses($surveyid, $groupid, $groupingid) { global $CFG; if ($groupid) { - $groupsdb = ", {$CFG->prefix}groups_members gm "; - $groupsql = "AND gm.groupid = '$groupid' AND u.id = gm.userid"; + $groupsjoin = "INNER JOIN {$CFG->prefix}groups_members gm ON u.id = gm.userid AND gm.groupid = '$groupid' "; + } else if ($groupingid) { + $groupsjoin = "INNER JOIN {$CFG->prefix}groups_members gm ON u.id = gm.userid + INNER JOIN {$CFG->prefix}groupings_groups gg ON gm.groupid = gg.groupid AND gg.groupingid = $groupingid "; } else { - $groupsdb = ""; - $groupsql = ""; + $groupsjoin = ""; } return get_records_sql("SELECT u.id, u.firstname, u.lastname, u.picture, MAX(a.time) as time - FROM {$CFG->prefix}survey_answers a, - {$CFG->prefix}user u $groupsdb + FROM {$CFG->prefix}survey_answers a + INNER JOIN {$CFG->prefix}user u ON a.userid = u.id + $groupsjoin WHERE a.survey = $surveyid - AND a.userid = u.id $groupsql GROUP BY u.id, u.firstname, u.lastname, u.picture ORDER BY time ASC"); } @@ -298,8 +299,8 @@ function survey_already_done($survey, $user) { return record_exists("survey_answers", "survey", $survey, "userid", $user); } -function survey_count_responses($surveyid, $groupid) { - if ($responses = survey_get_responses($surveyid, $groupid)) { +function survey_count_responses($surveyid, $groupid, $groupingid) { + if ($responses = survey_get_responses($surveyid, $groupid, $groupingid)) { return count($responses); } else { return 0; diff --git a/mod/survey/mod_form.php b/mod/survey/mod_form.php index cb29ccd0a9..2c0f4696fe 100644 --- a/mod/survey/mod_form.php +++ b/mod/survey/mod_form.php @@ -33,7 +33,11 @@ class mod_survey_mod_form extends moodleform_mod { $mform->addElement('textarea', 'intro', get_string('customintro', 'survey'), 'wrap="virtual" rows="20" cols="75"'); $mform->setType('intro', PARAM_RAW); - $this->standard_coursemodule_elements(); + $features = new stdClass; + $features->groups = true; + $features->groupings = true; + $features->groupmembersonly = true; + $this->standard_coursemodule_elements($features); //------------------------------------------------------------------------------- // buttons diff --git a/mod/survey/report.php b/mod/survey/report.php index df8ad8c319..8e7ceee832 100644 --- a/mod/survey/report.php +++ b/mod/survey/report.php @@ -76,20 +76,23 @@ update_module_button($cm->id, $course->id, $strsurvey), navmenu($course, $cm)); /// Check to see if groups are being used in this survey - if ($groupmode = groupmode($course, $cm)) { // Groups are being used + if ($groupmode = groups_get_activity_groupmode($cm)) { // Groups are being used $menuaction = $action == "student" ? "students" : $action; - $currentgroup = setup_and_print_groups($course, $groupmode, - "report.php?id=$cm->id&action=$menuaction&qid=$qid"); + $currentgroup = groups_get_activity_group($cm, true); + groups_print_activity_menu($cm, "report.php?id=$cm->id&action=$menuaction&qid=$qid"); } else { $currentgroup = 0; } if ($currentgroup) { - $users = get_group_users($currentgroup); + $users = groups_get_members($currentgroup); + } else if (!empty($CFG->enablegroupings) && !empty($cm->groupingid)) { + $users = groups_get_grouping_members($cm->groupingid); } else { $users = get_course_users($course->id); } - + $groupingid = $cm->groupingid; + print_simple_box_start("center"); if ($showscales) { echo "$strsummary"; @@ -126,7 +129,7 @@ case "summary": print_heading($strsummary); - if (survey_count_responses($survey->id, $currentgroup)) { + if (survey_count_responses($survey->id, $currentgroup, $groupingid)) { echo "
"; survey_print_graph("id=$id&group=$currentgroup&type=overall.png"); echo "
"; @@ -138,7 +141,7 @@ case "scales": print_heading($strscales); - if (! $results = survey_get_responses($survey->id, $currentgroup) ) { + if (! $results = survey_get_responses($survey->id, $currentgroup, $groupingid) ) { notify(get_string("nobodyyet","survey")); } else { @@ -189,7 +192,7 @@ print_heading($strallquestions); } - if (! $results = survey_get_responses($survey->id, $currentgroup) ) { + if (! $results = survey_get_responses($survey->id, $currentgroup, $groupingid) ) { notify(get_string("nobodyyet","survey")); } else { @@ -309,7 +312,7 @@ print_heading(get_string("analysisof", "survey", "$course->students")); - if (! $results = survey_get_responses($survey->id, $currentgroup) ) { + if (! $results = survey_get_responses($survey->id, $currentgroup, $groupingid) ) { notify(get_string("nobodyyet","survey")); } else { survey_print_all_responses($cm->id, $results, $course->id); diff --git a/mod/survey/view.php b/mod/survey/view.php index b163d4267b..3bb956496a 100644 --- a/mod/survey/view.php +++ b/mod/survey/view.php @@ -46,18 +46,19 @@ update_module_button($cm->id, $course->id, $strsurvey), navmenu($course, $cm)); /// Check to see if groups are being used in this survey - if ($groupmode = groupmode($course, $cm)) { // Groups are being used - $currentgroup = get_current_group($course->id); + if ($groupmode = groups_get_activity_groupmode($cm)) { // Groups are being used + $currentgroup = groups_get_activity_group($cm); } else { $currentgroup = 0; } - + $groupingid = $cm->groupingid; + if (has_capability('mod/survey:readresponses', $context) or ($groupmode == VISIBLEGROUPS)) { $currentgroup = 0; } if (has_capability('mod/survey:readresponses', $context)) { - $numusers = survey_count_responses($survey->id, $currentgroup); + $numusers = survey_count_responses($survey->id, $currentgroup, $groupingid); echo "
id\">". get_string("viewsurveyresponses", "survey", $numusers)."
"; } else if (!$cm->visible) { @@ -74,7 +75,7 @@ if (survey_already_done($survey->id, $USER->id)) { add_to_log($course->id, "survey", "view graph", "view.php?id=$cm->id", $survey->id, $cm->id); - $numusers = survey_count_responses($survey->id, $currentgroup); + $numusers = survey_count_responses($survey->id, $currentgroup, $groupingid); if ($showscales) { print_heading(get_string("surveycompleted", "survey")); -- 2.39.5