MDL-11433 Added decimals field to grade_items table
[moodle-pu.git] / group / autogroup_form.php
blob0f846d9ac6b2e852c0bbd6ab333bd3ad79975d3c
1 <?php // $Id$
3 require_once($CFG->dirroot.'/lib/formslib.php');
5 /// get url variables
6 class autogroup_form extends moodleform {
8 // Define the form
9 function definition() {
10 global $CFG, $COURSE;
12 $mform =& $this->_form;
14 $mform->addElement('header', 'autogroup', get_string('autocreategroups', 'group'));
16 $options = array(get_string('all'));
17 $options += $this->_customdata['roles'];
18 $mform->addElement('select', 'roleid', get_string('selectfromrole', 'group'), $options);
19 $mform->addRule('roleid', get_string('required'), 'required', null, 'client');
22 $options = array('groups' => get_string('groups', 'group'),
23 'members' => get_string('members', 'group'));
24 $mform->addElement('select', 'groupby', get_string('groupby', 'group'), $options);
25 $mform->addRule('groupby', get_string('required'), 'required', null, 'client');
27 $mform->addElement('text', 'number', get_string('number', 'group'),'maxlength="4" size="4"');
28 $mform->setType('number', PARAM_INT);
29 $mform->addRule('number', null, 'numeric', null, 'client');
30 $mform->addRule('number', get_string('required'), 'required', null, 'client');
32 $options = array('random' => get_string('random', 'group'),
33 'firstname' => get_string('firstname', 'group'),
34 'lastname' => get_string('lastname', 'group'));
36 $mform->addElement('select', 'allocateby', get_string('allocateby', 'group'), $options);
37 $mform->addRule('allocateby', get_string('required'), 'required', null, 'client');
39 $grp[] = $mform->createElement('text', 'namingscheme');
40 $grp[] = $mform->createElement('static', 'namingschemehelp', null, get_string('namingschemehelp', 'group'));
41 $mform->addGroup($grp, 'namingschemegrp', get_string('namingscheme', 'group'), '<br />');
43 $mform->setType('namingschemegrp[namingscheme]', PARAM_RAW);
44 $mform->setDefault('namingschemegrp[namingscheme]', get_string('group', 'group').' @');
45 $mform->addRule('namingschemegrp', get_string('required'), 'required', null, 'client');
46 $mform->setAdvanced('namingschemegrp');
49 $mform->addElement('hidden','courseid');
50 $mform->setType('courseid', PARAM_INT);
52 $mform->addElement('hidden','seed');
53 $mform->setType('seed', PARAM_INT);
55 $buttonarray=array();
56 $buttonarray[] = &$mform->createElement('submit', 'preview', get_string('preview'), 'xx');
57 $buttonarray[] = &$mform->createElement('submit', 'submitbutton', get_string('submit'));
58 $buttonarray[] = &$mform->createElement('cancel');
59 $mform->addGroup($buttonarray, 'buttonar', '', array(' '), false);
60 $mform->closeHeaderBefore('buttonar');
64 function validation($data) {
65 global $CFG, $COURSE;
66 $errors = array();
68 if (!$users = groups_get_potental_members($data['courseid'], $data['roleid'])) {
69 $errors['roleid'] = get_string('nousersinrole', 'group');
71 $usercnt = count($users);
73 /// Check the number entered is sane
74 if ($data['groupby'] == 'groups') {
76 if ($data['number'] > $usercnt || $data['number'] < 1) {
77 $errors['number'] = get_string('toomanygroups', 'group', $usercnt);
81 /// Check the naming scheme
82 $matchcnt = preg_match_all('/[#@]{1,1}/', $data['namingschemegrp']['namingscheme'], $matches);
84 if ($matchcnt != 1) {
85 $errors['namingschemegrp'] = get_string('badnamingscheme', 'group');
89 if (count($errors) > 0) {
90 return $errors;
91 } else {
92 return true;