/// 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;
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;
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");
}
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;
$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
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 "<a href=\"report.php?action=summary&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&id=$id\">";
survey_print_graph("id=$id&group=$currentgroup&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);
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) {
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"));