MDL-10738 finished hiding support in grade and item edit page
This commit is contained in:
@@ -52,7 +52,7 @@ if (!$grade_item = grade_item::fetch(array('id'=>$itemid, 'courseid'=>$courseid)
|
||||
|
||||
$mform = new edit_grade_form(null, array('grade_item'=>$grade_item, 'gpr'=>$gpr));
|
||||
|
||||
if ($grade = get_record('grade_grades', 'itemid', $id, 'userid', $userid)) {
|
||||
if ($grade = get_record('grade_grades', 'itemid', $grade_item->id, 'userid', $userid)) {
|
||||
if ($grade_text = get_record('grade_grades_text', 'gradeid', $grade->id)) {
|
||||
// always clean existing feedback - grading should not have XSS risk
|
||||
if (can_use_html_editor()) {
|
||||
@@ -68,9 +68,16 @@ if ($grade = get_record('grade_grades', 'itemid', $id, 'userid', $userid)) {
|
||||
}
|
||||
}
|
||||
|
||||
$grade->locked = $grade->locked > 0 ? 1:0;
|
||||
$grade->overridden = $grade->overridden > 0 ? 1:0;
|
||||
$grade->excluded = $grade->excluded > 0 ? 1:0;
|
||||
$grade->locked = $grade->locked > 0 ? 1:0;
|
||||
$grade->overridden = $grade->overridden > 0 ? 1:0;
|
||||
$grade->excluded = $grade->excluded > 0 ? 1:0;
|
||||
|
||||
if ($grade->hidden > 1) {
|
||||
$grade->hiddenuntil = $grade->hidden;
|
||||
$grade->hidden = 0;
|
||||
} else {
|
||||
$grade->hiddenuntil = 0;
|
||||
}
|
||||
|
||||
$mform->set_data($grade);
|
||||
|
||||
@@ -90,7 +97,15 @@ if ($mform->is_cancelled()) {
|
||||
|
||||
$grade_grade = grade_grade::fetch(array('userid'=>$data->userid, 'itemid'=>$grade_item->id));
|
||||
|
||||
$grade_grade->set_hidden($data->hidden); // TODO: this is wrong - hidden might be a data to hide until
|
||||
if (empty($data->hidden)) {
|
||||
if (empty($data->hiddenuntil)) {
|
||||
$grade_grade->set_hidden(0);
|
||||
} else {
|
||||
$grade_grade->set_hidden($data->hiddenuntil);
|
||||
}
|
||||
} else {
|
||||
$grade_grade->set_hidden(1);
|
||||
}
|
||||
|
||||
// ignore overridden flag when changing final grade
|
||||
if ($old_grade_grade->finalgrade == $grade_grade->finalgrade) {
|
||||
|
||||
@@ -37,10 +37,15 @@ class edit_grade_form extends moodleform {
|
||||
$mform->addElement('select', 'finalgrade', get_string('finalgrade', 'grades'), $scaleopt);
|
||||
}
|
||||
|
||||
$mform->addElement('advcheckbox', 'hidden', get_string('hidden', 'grades'));
|
||||
$mform->addElement('advcheckbox', 'overridden', get_string('overridden', 'grades'));
|
||||
$mform->addElement('advcheckbox', 'excluded', get_string('excluded', 'grades'));
|
||||
|
||||
/// hiding
|
||||
/// advcheckbox is not compatible with disabledIf !!
|
||||
$mform->addElement('checkbox', 'hidden', get_string('hidden', 'grades'));
|
||||
$mform->addElement('date_time_selector', 'hiddenuntil', get_string('hiddeuntil', 'grades'), array('optional'=>true));
|
||||
$mform->disabledIf('hiddenuntil', 'hidden', 'checked');
|
||||
|
||||
/// locking
|
||||
$mform->addElement('advcheckbox', 'locked', get_string('locked', 'grades'));
|
||||
$mform->addElement('date_time_selector', 'locktime', get_string('locktime', 'grades'), array('optional'=>true));
|
||||
|
||||
@@ -33,6 +33,13 @@ if ($item = get_record('grade_items', 'id', $id, 'courseid', $course->id)) {
|
||||
redirect($gpr->add_url_params($url));
|
||||
}
|
||||
|
||||
if ($item->hidden > 1) {
|
||||
$item->hiddenuntil = $item->hidden;
|
||||
$item->hidden = 0;
|
||||
} else {
|
||||
$item->hiddenuntil = 0;
|
||||
}
|
||||
|
||||
// Get Item preferences
|
||||
$item->pref_gradedisplaytype = grade_report::get_pref('gradedisplaytype', $id);
|
||||
$item->pref_decimalpoints = grade_report::get_pref('decimalpoints', $id);
|
||||
@@ -46,6 +53,11 @@ if ($data = $mform->get_data(false)) {
|
||||
$data->calculation = grade_item::normalize_formula($data->calculation, $course->id);
|
||||
}
|
||||
|
||||
$hidden = empty($data->hidden) ? 0: $data->hidden;
|
||||
$hiddenuntil = empty($data->hiddenuntil) ? 0: $data->hiddenuntil;
|
||||
unset($data->hidden);
|
||||
unset($data->hiddenuntil);
|
||||
|
||||
$grade_item = new grade_item(array('id'=>$id, 'courseid'=>$courseid));
|
||||
grade_item::set_properties($grade_item, $data);
|
||||
|
||||
@@ -59,6 +71,13 @@ if ($data = $mform->get_data(false)) {
|
||||
$grade_item->update();
|
||||
}
|
||||
|
||||
// update hiding flag (in grades too if needed)
|
||||
if (empty($hidden)) {
|
||||
$grade_item->set_hidden($hiddenuntil);
|
||||
} else {
|
||||
$grade_item->set_hidden(1);
|
||||
}
|
||||
|
||||
// Handle user preferences
|
||||
if (isset($data->pref_gradedisplaytype)) {
|
||||
if (!grade_report::set_pref('gradedisplaytype', $data->pref_gradedisplaytype, $grade_item->id)) {
|
||||
|
||||
@@ -73,6 +73,13 @@ class edit_item_form extends moodleform {
|
||||
$mform->setHelpButton('aggregationcoef', array(false, get_string('aggregationcoef', 'grades'), false, true, false, 'aggregationcoefhelp'));
|
||||
$mform->setDefault('aggregationcoef', 0.0);
|
||||
|
||||
/// hiding
|
||||
/// advcheckbox is not compatible with disabledIf !!
|
||||
$mform->addElement('checkbox', 'hidden', get_string('hidden', 'grades'));
|
||||
$mform->addElement('date_time_selector', 'hiddenuntil', get_string('hiddenuntil', 'grades'), array('optional'=>true));
|
||||
$mform->disabledIf('hiddenuntil', 'hidden', 'checked');
|
||||
|
||||
/// locking
|
||||
$mform->addElement('advcheckbox', 'locked', get_string('locked', 'grades'));
|
||||
$mform->setHelpButton('locked', array(false, get_string('locked', 'grades'), false, true, false, 'lockedhelp'));
|
||||
|
||||
|
||||
@@ -34,6 +34,13 @@ if ($item = get_record('grade_items', 'id', $id, 'courseid', $course->id)) {
|
||||
redirect($gpr->add_url_params($url));
|
||||
}
|
||||
|
||||
if ($item->hidden > 1) {
|
||||
$item->hiddenuntil = $item->hidden;
|
||||
$item->hidden = 0;
|
||||
} else {
|
||||
$item->hiddenuntil = 0;
|
||||
}
|
||||
|
||||
$item->calculation = grade_item::denormalize_formula($item->calculation, $course->id);
|
||||
|
||||
if ($item->itemtype == 'mod') {
|
||||
@@ -51,6 +58,11 @@ if ($data = $mform->get_data(false)) {
|
||||
$data->calculation = grade_item::normalize_formula($data->calculation, $course->id);
|
||||
}
|
||||
|
||||
$hidden = empty($data->hidden) ? 0: $data->hidden;
|
||||
$hiddenuntil = empty($data->hiddenuntil) ? 0: $data->hiddenuntil;
|
||||
unset($data->hidden);
|
||||
unset($data->hiddenuntil);
|
||||
|
||||
$grade_item = new grade_item(array('id'=>$id, 'courseid'=>$courseid));
|
||||
grade_item::set_properties($grade_item, $data);
|
||||
|
||||
@@ -111,6 +123,13 @@ if ($data = $mform->get_data(false)) {
|
||||
$grade_item->update();
|
||||
}
|
||||
|
||||
// update hiding flag (in grades too if needed)
|
||||
if (empty($hidden)) {
|
||||
$grade_item->set_hidden($hiddenuntil);
|
||||
} else {
|
||||
$grade_item->set_hidden(1);
|
||||
}
|
||||
|
||||
redirect($returnurl);
|
||||
}
|
||||
|
||||
|
||||
@@ -43,8 +43,14 @@ class edit_outcomeitem_form extends moodleform {
|
||||
$mform->addElement('text', 'aggregationcoef', get_string('aggregationcoef', 'grades'));
|
||||
$mform->setDefault('aggregationcoef', 0.0);
|
||||
|
||||
$mform->addElement('advcheckbox', 'locked', get_string('locked', 'grades'));
|
||||
/// hiding
|
||||
/// advcheckbox is not compatible with disabledIf !!
|
||||
$mform->addElement('checkbox', 'hidden', get_string('hidden', 'grades'));
|
||||
$mform->addElement('date_time_selector', 'hiddenuntil', get_string('hiddeuntil', 'grades'), array('optional'=>true));
|
||||
$mform->disabledIf('hiddenuntil', 'hidden', 'checked');
|
||||
|
||||
//locking
|
||||
$mform->addElement('advcheckbox', 'locked', get_string('locked', 'grades'));
|
||||
$mform->addElement('date_time_selector', 'locktime', get_string('locktime', 'grades'), array('optional'=>true));
|
||||
|
||||
/// hidden params
|
||||
|
||||
@@ -165,6 +165,7 @@ $string['grades'] = 'Grades';
|
||||
$string['gradetype'] = 'Grade type';
|
||||
$string['gradeview'] = 'View Grade';
|
||||
$string['gradeweighthelp'] = 'Grade Weight Help';
|
||||
$string['hiddenuntil'] = 'Hidden until';
|
||||
$string['hideadvanced'] = 'Hide Advanced Features';
|
||||
$string['hidecalculations'] = 'Hide calculations';
|
||||
$string['hidecategory'] = 'Hidden';
|
||||
|
||||
Reference in New Issue
Block a user