]> git.mjollnir.org Git - moodle.git/commitdiff
MDL-10888: groupings - mod/survey - updated to use groupings
authormattc-catalyst <mattc-catalyst>
Tue, 28 Aug 2007 00:12:01 +0000 (00:12 +0000)
committermattc-catalyst <mattc-catalyst>
Tue, 28 Aug 2007 00:12:01 +0000 (00:12 +0000)
mod/survey/download.php
mod/survey/graph.php
mod/survey/lib.php
mod/survey/mod_form.php
mod/survey/report.php
mod/survey/view.php

index ac60642e6d99cb2126cded0cc877409a7a989b96..60da14a72b21dff6b7dfdc4facea6fceb3095bec 100644 (file)
 
 /// 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;
index 0f1d6e5d4b99edbbb616e08a1b1d87520abdd070..62e10d58ccde925216df012897c478e1f5baea20 100644 (file)
@@ -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)) {
     }
 
 /// 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;
index 01521bfd044afb8b9c62d3a904cd40074a68f073..1f42a9ca90b12696777d222ce84a84086b8cb18d 100644 (file)
@@ -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;
index cb29ccd0a92b056fdbdf5193844f64d1cb45ae2a..2c0f4696fe1f35835a16a46f2d50a29cfd389017 100644 (file)
@@ -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
index df8ad8c3197797b13312e976cd7eeabc997adb7a..8e7ceee832262e32401222cf11ec3afe9b79c0b6 100644 (file)
                  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&amp;action=$menuaction&amp;qid=$qid");
+        $currentgroup = groups_get_activity_group($cm, true);
+        groups_print_activity_menu($cm, "report.php?id=$cm->id&amp;action=$menuaction&amp;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 "<a href=\"report.php?action=summary&amp;id=$id\">$strsummary</a>";
       case "summary":
         print_heading($strsummary);
 
-        if (survey_count_responses($survey->id, $currentgroup)) {
+        if (survey_count_responses($survey->id, $currentgroup, $groupingid)) {
             echo "<div class='reportsummary'><a href=\"report.php?action=scales&amp;id=$id\">";
             survey_print_graph("id=$id&amp;group=$currentgroup&amp;type=overall.png");
             echo "</a></div>";
       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 {
             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 {
 
          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);
index b163d4267bf4a6cb4757701eaf376fc290c75830..3bb956496ab8e0a6aa3ff24b5e2fa8e8f7596c77 100644 (file)
                   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 "<div class=\"reportlink\"><a href=\"report.php?id=$cm->id\">".
               get_string("viewsurveyresponses", "survey", $numusers)."</a></div>";
     } 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"));