/**
* Print standard form elements on module setup forms in mod/.../mod.html
*/
-function print_standard_coursemodule_settings($form) {
+function print_standard_coursemodule_settings($form, $features=null) {
if (! $course = get_record('course', 'id', $form->course)) {
error("This course doesn't exist");
}
print_groupmode_setting($form, $course);
+ if (!empty($features->groupings)) {
+ print_grouping_settings($form, $course);
+ }
print_visible_setting($form, $course);
}
}
}
+/**
+ * Print groupmode form element on module setup forms in mod/.../mod.html
+ */
+function print_grouping_settings($form, $course=NULL) {
+
+ if (empty($course)) {
+ if (! $course = get_record('course', 'id', $form->course)) {
+ error("This course doesn't exist");
+ }
+ }
+ if ($form->coursemodule) {
+ if (! $cm = get_record('course_modules', 'id', $form->coursemodule)) {
+ error("This course module doesn't exist");
+ }
+ } else {
+ $cm = null;
+ }
+
+ $groupings = get_records_menu('groupings', 'courseid', $course->id, 'name', 'id, name');
+ if (!empty($groupings)) {
+ echo '<tr valign="top">';
+ echo '<td align="right"><b>'.get_string('grouping', 'group').':</b></td>';
+ echo '<td align="left">';
+
+ $groupings;
+ $groupingid = isset($cm->groupingid) ? $cm->groupingid : 0;
+
+ choose_from_menu($groupings, 'groupingid', $groupingid, get_string('none'), '', 0, false);
+ echo '</td></tr>';
+
+ $checked = empty($cm->groupmembersonly) ? '':'checked="checked"';
+ echo '<tr valign="top">';
+ echo '<td align="right"><b>'.get_string('groupmembersonly', 'group').':</b></td>';
+ echo '<td align="left">';
+ echo "<input type=\"checkbox\" name=\"groupmembersonly\" value=\"1\" $checked />";
+ echo '</td></tr>';
+
+ }
+}
+
/**
* Print visibility setting form element on module setup forms in mod/.../mod.html
*/
if (isset($mod->groupmode)) {
set_coursemodule_groupmode($mod->coursemodule, $mod->groupmode);
}
+
+ if (isset($mod->groupingid)) {
+ set_coursemodule_groupingid($mod->coursemodule, $mod->groupingid);
+ }
+
+ if (isset($mod->groupmembersonly)) {
+ set_coursemodule_groupmembersonly($mod->coursemodule, $mod->groupmembersonly);
+ }
if (isset($mod->redirect)) {
$SESSION->returnpage = $mod->redirecturl;
if (!isset($mod->groupmode)) { // to deal with pre-1.5 modules
$mod->groupmode = $course->groupmode; /// Default groupmode the same as course
}
-
+
+ if (isset($mod->groupingid)) {
+ set_coursemodule_groupingid($mod->coursemodule, $mod->groupingid);
+ }
+
+ if (isset($mod->groupmembersonly)) {
+ set_coursemodule_groupmembersonly($mod->coursemodule, $mod->groupmembersonly);
+ }
$mod->instance = $return;
// course_modules and course_sections each contain a reference
$assessment->timegraded = 0;
$assessment->timeagreed = 0;
$assessment->resubmission = 0;
+ $assessment->generalcomment = '';
+ $assessment->teachercomment = '';
if (!$assessment->id = insert_record("workshop_assessments", $assessment)) {
error("Could not insert workshop assessment!");
}
}
$posts = get_records_sql("SELECT s.*, u.firstname, u.lastname,
- u.picture, cm.instance, w.name, cm.section
+ u.picture, cm.instance, w.name, cm.section, cm.groupmode,
+ cm.course, cm.groupingid, cm.groupmembersonly
FROM {$CFG->prefix}workshop_submissions s,
{$CFG->prefix}user u,
{$CFG->prefix}course_modules cm,
}
foreach ($posts as $post) {
-
- if (empty($groupid) || groups_is_member($groupid, $post->userid)) {
+ if ((empty($groupid) || groups_is_member($groupid, $post->userid)) && groups_course_module_visible($post)) {
$tmpactivity = new Object;
helpbutton("releasegrades", get_string("releaseteachergrades", "workshop"), "workshop");
?></td>
</tr>
-<?php print_standard_coursemodule_settings($form); ?>
+<?php
+$features = new stdClass;
+$features->groupings = true;
+print_standard_coursemodule_settings($form, $features);
+?>
</table>
<br />
<div class="boxaligncenter">
$context = get_context_instance(CONTEXT_MODULE, $cm->id);
/// find out current groups mode
- $groupmode = groupmode($course, $cm);
- $currentgroup = setup_and_print_groups($course, $groupmode, "view.php?id=$cm->id");
+ $groupmode = groups_get_activity_groupmode($cm);
+ $currentgroup = groups_get_activity_group($cm, true);
+ groups_print_activity_menu($cm, "view.php?id=$cm->id");
/// Print admin links
echo "<table width=\"100%\"><tr><td>";
print_footer($course);
exit;
}
+
+ if (!empty($CFG->enablegroupings) && !empty($cm->groupingid) && !empty($users)) {
+ $groupingusers = groups_get_grouping_members($cm->groupingid, 'u.id', 'u.id');
+ foreach($users as $key => $user) {
+ if (!isset($groupingusers[$user->id])) {
+ unset($users[$key]);
+ }
+ }
+ }
/// Now prepare table with student assessments and submissions
$tablesort->data = array();
FROM {$CFG->prefix}groups_members g, {$CFG->prefix}workshop_assessments a
WHERE g.groupid = $currentgroup AND a.userid = g.userid AND a.timegraded > 0
AND a.workshopid = $workshop->id");
+ } elseif (!empty($cm->groupingid) && !empty($CFG->enablegroupings)) {
+ $stats = get_record_sql("SELECT COUNT(*) as count, AVG(gradinggrade) AS mean,
+ STDDEV(gradinggrade) AS stddev, MIN(gradinggrade) AS min, MAX(gradinggrade) AS max
+ FROM {$CFG->prefix}workshop_assessments a
+ INNER JOIN {$CFG->prefix}groups_members g ON a.userid = g.userid
+ INNER JOIN {$CFG->prefix}groupings_groups gg ON g.groupid = gg.groupid
+ WHERE gg.groupingid = {$cm->groupingid} AND a.timegraded > 0
+ AND a.workshopid = $workshop->id");
} else { // no group/all participants
$stats = get_record_sql("SELECT COUNT(*) as count, AVG(gradinggrade) AS mean,
STDDEV(gradinggrade) AS stddev, MIN(gradinggrade) AS min, MAX(gradinggrade) AS max