MDL-9628 Fixed sorting
[moodle-pu.git] / grade / edit / scale / edit_form.php
blob8025415df295b4f2a6d32dfca012967ea3d65214
1 <?php //$Id$
3 require_once $CFG->libdir.'/formslib.php';
5 class edit_scale_form extends moodleform {
6 function definition() {
7 global $CFG;
8 $mform =& $this->_form;
10 // visible elements
11 $mform->addElement('header', 'general', get_string('scale'));
13 $mform->addElement('text', 'name', get_string('name'), 'size="40"');
14 $mform->addRule('name', get_string('required'), 'required', null, 'client');
15 $mform->setType('name', PARAM_TEXT);
17 $mform->addElement('advcheckbox', 'standard', get_string('scalestandard'));
19 $mform->addElement('static', 'activities', get_string('activities'));
21 $mform->addElement('textarea', 'scale', get_string('scale'), array('cols'=>50, 'rows'=>2));
22 $mform->addRule('scale', get_string('required'), 'required', null, 'client');
23 $mform->setType('scale', PARAM_TEXT);
25 $mform->addElement('htmleditor', 'description', get_string('description'), array('cols'=>80, 'rows'=>20));
28 // hidden params
29 $mform->addElement('hidden', 'id', 0);
30 $mform->setType('id', PARAM_INT);
32 $mform->addElement('hidden', 'courseid', 0);
33 $mform->setType('courseid', PARAM_INT);
35 /// add return tracking info
36 $gpr = $this->_customdata['gpr'];
37 $gpr->add_mform_elements($mform);
39 //-------------------------------------------------------------------------------
40 // buttons
41 $this->add_action_buttons();
45 /// tweak the form - depending on existing data
46 function definition_after_data() {
47 global $CFG;
49 $mform =& $this->_form;
51 $courseid = $mform->getElementValue('courseid');
53 if ($id = $mform->getElementValue('id')) {
54 $scale = grade_scale::fetch(array('id'=>$id));
55 $count = $scale->get_item_uses_count();
57 if ($count) {
58 $mform->hardFreeze('scale');
61 if (empty($courseid)) {
62 $mform->hardFreeze('standard');
64 } else if (empty($scale->courseid) and !has_capability('moodle/course:managescales', get_context_instance(CONTEXT_SYSTEM))) {
65 $mform->hardFreeze('standard');
67 } else if ($count and !empty($scale->courseid)) {
68 $mform->hardFreeze('standard');
71 $activities_el =& $mform->getElement('activities');
72 $activities_el->setValue(get_string('usedinnplaces', '', $count));
74 } else {
75 $mform->removeElement('activities');
76 if (empty($courseid) or !has_capability('moodle/course:managescales', get_context_instance(CONTEXT_SYSTEM))) {
77 $mform->hardFreeze('standard');
82 /// perform extra validation before submission
83 function validation($data){
85 global $CFG;
87 $errors= array();
89 // we can not allow 2 scales with the same exact scale as this creates
90 // problems for backup/restore
91 $courseid = empty($data['courseid'])?0:$data['courseid'];
92 if (count_records('scale', 'courseid', $courseid, 'scale', $data['scale'])) {
93 $errors['scale'] = get_string('duplicatescale', 'grades');
96 $options = explode(',', $data['scale']);
97 if (count($options) < 2) {
98 $errors['scale'] = get_string('error');
101 if (0 == count($errors)){
102 return true;
103 } else {
104 return $errors;