/** * This function tests to see if a user-named group is created correctly. */ public function test_create_group() { global $DB; $this->configure_settings(); $sgrouping = new skills_grouping($this->courseid); // Test 1: group creation with name specified. $this->setUser($this->users[0]); $testname = 'Test Skills Group'; $groupid = $sgrouping->create_group($testname); $record = $DB->get_record('groups', array('id' => $groupid)); $this->assertEquals($record->name, $testname); $memberrecord = $DB->get_record('groups_members', array('groupid' => $groupid)); $this->assertEquals($memberrecord->userid, $this->users[0]->id); groups_remove_member($groupid, $this->users[0]->id); // Test 2: auto-created group name. $groupid = $sgrouping->create_group(null); $record = $DB->get_record('groups', array('id' => $groupid)); $this->assertEquals($record->name, 'Team 03'); groups_remove_member($groupid, $this->users[0]->id); $groupid = $sgrouping->create_group(null); $record = $DB->get_record('groups', array('id' => $groupid)); $this->assertEquals($record->name, 'Team 04'); $groupid = $sgrouping->create_group(null); $record = $DB->get_record('groups', array('id' => $groupid)); $this->assertEquals($record->name, 'Team 06'); }
/** * This function determines the user's desired course of action -> {create, edit, drop} * and processes it accordingly. * * @param int $courseid The ID of the course. * @param object $submittedform The object contains the results of the form when changes were saved. * @return string|boolean The url to redirect the user to or false to prevent redirect. * */ function process_form($courseid, &$submittedform) { global $DB, $USER; $sgs = new skills_group_setting($courseid); if ($sgs->date_restriction() && time() > $sgs->get_date()) { // Process no data and redirect back to same form. Form will draw expired version to alert user. $url = new moodle_url('/blocks/skills_group/create_skills_group.php', array('courseid' => $courseid, 'sesskey' => $USER->sesskey)); return $url; } if ($submittedform->type == 'create') { if ($submittedform->creategroupcheck) { $sgrouping = new skills_grouping($courseid); // Blank names are OK -> plugin will autoname. $groupname = isset($submittedform->creategroup) ? $submittedform->creategroup : null; $groupid = $sgrouping->create_group($groupname); update_allow_join($groupid, $submittedform->allowjoincheck); $url = new moodle_url('/blocks/skills_group/edit_skills_group.php', array('courseid' => $courseid, 'groupid' => $groupid, 'sesskey' => $USER->sesskey)); // Logging create group action. $params = array('context' => context_course::instance($courseid), 'objectid' => $groupid, 'courseid' => $courseid, 'userid' => $USER->id); $event = \block_skills_group\event\skillsgroup_left::create($params); $event->trigger(); } else { $url = new moodle_url('/course/view.php', array('id' => $courseid)); } } else { if ($submittedform->type == 'edit') { if (isset($submittedform->leavegroup)) { if ($submittedform->leavegroup) { groups_remove_member($submittedform->groupid, $USER->id); // Logging leave group action. $params = array('context' => context_course::instance($courseid), 'objectid' => $submittedform->groupid, 'courseid' => $courseid, 'userid' => $USER->id); $event = \block_skills_group\event\skillsgroup_left::create($params); $event->trigger(); $url = new moodle_url('/course/view.php', array('id' => $courseid)); return $url; } } $groupid = $submittedform->groupid; update_allow_join($groupid, $submittedform->allowjoincheck); if ($submittedform->editmembers) { $url = new moodle_url('/blocks/skills_group/edit_skills_group.php', array('courseid' => $courseid, 'groupid' => $groupid, 'sesskey' => $USER->sesskey)); } else { $url = new moodle_url('/course/view.php', array('id' => $courseid)); } } else { $url = new moodle_url('/course/view.php', array('id' => $courseid)); } } return $url; }