MDL-19323 added missing support for localized floats + code cleanup; merged from MOODLE_19_STABLE
This commit is contained in:
+33
-52
@@ -63,9 +63,9 @@ if (has_capability('moodle/grade:manage', $context)) {
|
||||
$USER->gradeediting[$course->id] = 0;
|
||||
}
|
||||
|
||||
if (($showadvanced == 1) and confirm_sesskey()) {
|
||||
if ($showadvanced == 1) {
|
||||
$USER->gradeediting[$course->id] = 1;
|
||||
} else if (($showadvanced == 0) and confirm_sesskey()) {
|
||||
} else if ($showadvanced == 0) {
|
||||
$USER->gradeediting[$course->id] = 0;
|
||||
}
|
||||
|
||||
@@ -137,7 +137,7 @@ switch ($action) {
|
||||
}
|
||||
$confirm = optional_param('confirm', 0, PARAM_BOOL);
|
||||
|
||||
if ($confirm and confirm_sesskey()) {
|
||||
if ($confirm) {
|
||||
$object->delete('grade/report/grader/category');
|
||||
redirect($returnurl);
|
||||
|
||||
@@ -212,11 +212,9 @@ if ($current_view != '') {
|
||||
|
||||
print_grade_page_head($courseid, 'edittree', $current_view, get_string('categoriesedit', 'grades') . ': ' . $current_view_str);
|
||||
|
||||
$form_key = optional_param('sesskey', null, PARAM_ALPHANUM);
|
||||
|
||||
if ($form_key && $data = data_submitted()) {
|
||||
if ($data = data_submitted() and confirm_sesskey()) {
|
||||
// Perform bulk actions first
|
||||
if (!empty($data->bulkmove) && confirm_sesskey()) {
|
||||
if (!empty($data->bulkmove)) {
|
||||
$elements = array();
|
||||
|
||||
foreach ($data as $key => $value) {
|
||||
@@ -231,75 +229,58 @@ if ($form_key && $data = data_submitted()) {
|
||||
// Category and item field updates
|
||||
foreach ($data as $key => $value) {
|
||||
// Grade category text inputs
|
||||
if (preg_match('/(aggregation|droplow|keephigh)_([0-9]*)/', $key, $matches) && confirm_sesskey()) {
|
||||
$value = required_param($matches[0], PARAM_INT);
|
||||
if (preg_match('/^(aggregation|droplow|keephigh)_([0-9]+)$/', $key, $matches)) {
|
||||
$param = $matches[1];
|
||||
$aid = $matches[2];
|
||||
|
||||
// Do not allow negative values
|
||||
$value = clean_param($value, PARAM_INT);
|
||||
$value = ($value < 0) ? 0 : $value;
|
||||
|
||||
$param = $matches[1];
|
||||
$a->id = $matches[2];
|
||||
|
||||
$grade_category = grade_category::fetch(array('id'=>$a->id, 'courseid'=>$courseid));
|
||||
$grade_category = grade_category::fetch(array('id'=>$aid, 'courseid'=>$courseid));
|
||||
$grade_category->$param = $value;
|
||||
|
||||
$grade_category->update();
|
||||
grade_regrade_final_grades($courseid);
|
||||
|
||||
// Grade item text inputs
|
||||
} elseif (preg_match('/(grademax|aggregationcoef|multfactor|plusfactor)_([0-9]*)/', $key, $matches) && confirm_sesskey()) {
|
||||
$defaults = array('grademax' => 100, 'aggregationcoef' => 1, 'multfactor' => 1, 'plusfactor' => 0);
|
||||
|
||||
if (is_string($_POST[$matches[0]]) && strlen($_POST[$matches[0]]) < 1) {
|
||||
$_POST[$matches[0]] = null;
|
||||
}
|
||||
$value = optional_param($matches[0], $defaults[$matches[1]], PARAM_NUMBER);
|
||||
|
||||
} elseif (preg_match('/^(grademax|aggregationcoef|multfactor|plusfactor)_([0-9]+)$/', $key, $matches)) {
|
||||
$param = $matches[1];
|
||||
$a->id = $matches[2];
|
||||
$grade_item = grade_item::fetch(array('id'=>$a->id, 'courseid'=>$courseid));
|
||||
$aid = $matches[2];
|
||||
|
||||
$value = unformat_float($value);
|
||||
$value = clean_param($value, PARAM_NUMBER);
|
||||
|
||||
$grade_item = grade_item::fetch(array('id'=>$aid, 'courseid'=>$courseid));
|
||||
|
||||
if ($param === 'grademax' and $value < $grade_item->grademin) {
|
||||
// better not allow values lower than grade min
|
||||
$value = $grade_item->grademin;
|
||||
}
|
||||
$grade_item->$param = $value;
|
||||
|
||||
$grade_item->update();
|
||||
grade_regrade_final_grades($courseid);
|
||||
|
||||
// Grade item checkbox inputs
|
||||
} elseif (preg_match('/extracredit_original_([0-9]*)/', $key, $matches) && confirm_sesskey()) { // Sum extra credit checkbox
|
||||
$extracredit = optional_param("extracredit_{$matches[1]}", null, PARAM_BOOL);
|
||||
$original_value = required_param($matches[0], PARAM_BOOL);
|
||||
$a->id = $matches[1];
|
||||
$newvalue = null;
|
||||
if ($original_value == 1 && is_null($extracredit)) {
|
||||
$newvalue = 0;
|
||||
} elseif ($original_value == 0 && $extracredit == 1) {
|
||||
$newvalue = 1;
|
||||
} else {
|
||||
continue;
|
||||
}
|
||||
} elseif (preg_match('/^extracredit_([0-9]+)$/', $key, $matches)) { // Sum extra credit checkbox
|
||||
$aid = $matches[1];
|
||||
$value = clean_param($value, PARAM_BOOL);
|
||||
|
||||
$grade_item = grade_item::fetch(array('id'=>$a->id, 'courseid'=>$courseid));
|
||||
$grade_item->aggregationcoef = $newvalue;
|
||||
$grade_item = grade_item::fetch(array('id'=>$aid, 'courseid'=>$courseid));
|
||||
$grade_item->aggregationcoef = $value;
|
||||
|
||||
$grade_item->update();
|
||||
grade_regrade_final_grades($courseid);
|
||||
|
||||
// Grade category checkbox inputs
|
||||
} elseif (preg_match('/aggregate(onlygraded|subcats|outcomes)_original_([0-9]*)/', $key, $matches) && confirm_sesskey()) {
|
||||
$setting = optional_param('aggregate'.$matches[1].'_'.$matches[2], null, PARAM_BOOL);
|
||||
$original_value = required_param($matches[0], PARAM_BOOL);
|
||||
$a->id = $matches[2];
|
||||
} elseif (preg_match('/^aggregate(onlygraded|subcats|outcomes)_([0-9]+)$/', $key, $matches)) {
|
||||
$param = 'aggregate'.$matches[1];
|
||||
$aid = $matches[2];
|
||||
$value = clean_param($value, PARAM_BOOL);
|
||||
|
||||
$newvalue = null;
|
||||
if ($original_value == 1 && is_null($setting)) {
|
||||
$newvalue = 0;
|
||||
} elseif ($original_value == 0 && $setting == 1) {
|
||||
$newvalue = 1;
|
||||
} else {
|
||||
continue;
|
||||
}
|
||||
|
||||
$grade_category = grade_category::fetch(array('id'=>$a->id, 'courseid'=>$courseid));
|
||||
$grade_category->{'aggregate'.$matches[1]} = $newvalue;
|
||||
$grade_category = grade_category::fetch(array('id'=>$aid, 'courseid'=>$courseid));
|
||||
$grade_category->$param = $value;
|
||||
|
||||
$grade_category->update();
|
||||
grade_regrade_final_grades($courseid);
|
||||
|
||||
+20
-22
@@ -337,18 +337,16 @@ class grade_edit_tree {
|
||||
|
||||
if ((($aggcoef == 'aggregationcoefweight' || $aggcoef == 'aggregationcoef') && $type == 'weight') ||
|
||||
($aggcoef == 'aggregationcoefextra' && $type == 'extra')) {
|
||||
return '<input type="text" size="6" id="aggregationcoef_'.$item->id.'" name="aggregationcoef_'.$item->id.'"
|
||||
value="'.format_float($item->aggregationcoef).'" />';
|
||||
return '<input type="text" size="6" id="aggregationcoef_'.$item->id.'" name="aggregationcoef_'.$item->id.'"
|
||||
value="'.format_float($item->aggregationcoef, 4).'" />';
|
||||
} elseif ($aggcoef == 'aggregationcoefextrasum' && $type == 'extra') {
|
||||
$checked = ($item->aggregationcoef > 0) ? 'checked="checked"' : '';
|
||||
$extracredit = ($item->aggregationcoef > 0) ? 1 : 0;
|
||||
|
||||
return '<input type="checkbox" id="extracredit_'.$item->id.'" name="extracredit_'.$item->id.'" ' . "$checked />\n"
|
||||
. '<input type="hidden" name="extracredit_original_'.$item->id.'" value="'.$extracredit.'" />';
|
||||
} else {
|
||||
return '';
|
||||
}
|
||||
$checked = ($item->aggregationcoef > 0) ? 'checked="checked"' : '';
|
||||
return '<input type="hidden" name="extracredit_'.$item->id.'" value="0" />
|
||||
<input type="checkbox" id="extracredit_'.$item->id.'" name="extracredit_'.$item->id.'" value="1" '."$checked />\n";
|
||||
} else {
|
||||
return '';
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Given an element of the grade tree, returns whether it is deletable or not (only manual grade items are deletable)
|
||||
@@ -688,7 +686,7 @@ class grade_edit_tree_column_range extends grade_edit_tree_column {
|
||||
} elseif ($item->is_external_item()) {
|
||||
$grademax = format_float($item->grademax, $item->get_decimals());
|
||||
} else {
|
||||
$grademax = '<input type="text" size="3" id="grademax'.$item->id.'" name="grademax_'.$item->id.'" value="'.format_float($item->grademax, $item->get_decimals()).'" />';
|
||||
$grademax = '<input type="text" size="4" id="grademax'.$item->id.'" name="grademax_'.$item->id.'" value="'.format_float($item->grademax, $item->get_decimals()).'" />';
|
||||
}
|
||||
|
||||
return '<td class="cell">'.$grademax.'</td>';
|
||||
@@ -717,14 +715,14 @@ class grade_edit_tree_column_aggregateonlygraded extends grade_edit_tree_column_
|
||||
|
||||
public function get_category_cell($category, $levelclass, $params) {
|
||||
$onlygradedcheck = ($category->aggregateonlygraded == 1) ? 'checked="checked"' : '';
|
||||
$aggregateonlygraded ='<input type="checkbox" id="aggregateonlygraded_'.$category->id.'" name="aggregateonlygraded_'.$category->id.'" '.$onlygradedcheck . ' />';
|
||||
$hidden = '<input type="hidden" name="aggregateonlygraded_original_'.$category->id.'" value="'.$category->aggregateonlygraded.'" />';
|
||||
$hidden = '<input type="hidden" name="aggregateonlygraded_'.$category->id.'" value="0" />';
|
||||
$aggregateonlygraded ='<input type="checkbox" id="aggregateonlygraded_'.$category->id.'" name="aggregateonlygraded_'.$category->id.'" value="1" '.$onlygradedcheck . ' />';
|
||||
|
||||
if ($this->forced) {
|
||||
$aggregateonlygraded = ($category->aggregateonlygraded) ? get_string('yes') : get_string('no');
|
||||
}
|
||||
|
||||
return '<td class="cell '.$levelclass.'">' . $aggregateonlygraded . $hidden.'</td>';
|
||||
return '<td class="cell '.$levelclass.'">'.$hidden.$aggregateonlygraded.'</td>';
|
||||
}
|
||||
|
||||
public function get_item_cell($item, $params) {
|
||||
@@ -745,14 +743,14 @@ class grade_edit_tree_column_aggregatesubcats extends grade_edit_tree_column_cat
|
||||
|
||||
public function get_category_cell($category, $levelclass, $params) {
|
||||
$subcatscheck = ($category->aggregatesubcats == 1) ? 'checked="checked"' : '';
|
||||
$aggregatesubcats = '<input type="checkbox" id="aggregatesubcats_'.$category->id.'" name="aggregatesubcats_'.$category->id.'" ' . $subcatscheck.' />';
|
||||
$hidden = '<input type="hidden" name="aggregatesubcats_original_'.$category->id.'" value="'.$category->aggregatesubcats.'" />';
|
||||
$hidden = '<input type="hidden" name="aggregatesubcats_'.$category->id.'" value="0" />';
|
||||
$aggregatesubcats = '<input type="checkbox" id="aggregatesubcats_'.$category->id.'" name="aggregatesubcats_'.$category->id.'" value="1" ' . $subcatscheck.' />';
|
||||
|
||||
if ($this->forced) {
|
||||
$aggregatesubcats = ($category->aggregatesubcats) ? get_string('yes') : get_string('no');
|
||||
}
|
||||
|
||||
return '<td class="cell '.$levelclass.'">' . $aggregatesubcats . $hidden.'</td>';
|
||||
return '<td class="cell '.$levelclass.'">'.$hidden.$aggregatesubcats.'</td>';
|
||||
|
||||
}
|
||||
|
||||
@@ -775,14 +773,14 @@ class grade_edit_tree_column_aggregateoutcomes extends grade_edit_tree_column_ca
|
||||
public function get_category_cell($category, $levelclass, $params) {
|
||||
|
||||
$outcomescheck = ($category->aggregateoutcomes == 1) ? 'checked="checked"' : '';
|
||||
$aggregateoutcomes = '<input type="checkbox" id="aggregateoutcomes_'.$category->id.'" name="aggregateoutcomes_'.$category->id.'" ' . $outcomescheck.' />';
|
||||
$hidden = '<input type="hidden" name="aggregateoutcomes_original_'.$category->id.'" value="'.$category->aggregateoutcomes.'" />';
|
||||
$hidden = '<input type="hidden" name="aggregateoutcomes_'.$category->id.'" value="0" />';
|
||||
$aggregateoutcomes = '<input type="checkbox" id="aggregateoutcomes_'.$category->id.'" name="aggregateoutcomes_'.$category->id.'" value="1" ' . $outcomescheck.' />';
|
||||
|
||||
if ($this->forced) {
|
||||
$aggregateoutcomes = ($category->aggregateoutcomes) ? get_string('yes') : get_string('no');
|
||||
}
|
||||
|
||||
return '<td class="cell '.$levelclass.'">' . $aggregateoutcomes . $hidden.'</td>';
|
||||
return '<td class="cell '.$levelclass.'">'.$hidden.$aggregateoutcomes.'</td>';
|
||||
}
|
||||
|
||||
public function get_item_cell($item, $params) {
|
||||
@@ -868,7 +866,7 @@ class grade_edit_tree_column_multfactor extends grade_edit_tree_column {
|
||||
if (!$item->is_raw_used()) {
|
||||
return '<td class="cell"> </td>';
|
||||
}
|
||||
$multfactor = '<input type="text" size="3" id="multfactor'.$item->id.'" name="multfactor_'.$item->id.'" value="'.format_float($item->multfactor).'" />';
|
||||
$multfactor = '<input type="text" size="4" id="multfactor'.$item->id.'" name="multfactor_'.$item->id.'" value="'.format_float($item->multfactor, 4).'" />';
|
||||
return '<td class="cell">'.$multfactor.'</td>';
|
||||
}
|
||||
|
||||
@@ -897,7 +895,7 @@ class grade_edit_tree_column_plusfactor extends grade_edit_tree_column {
|
||||
if (!$item->is_raw_used()) {
|
||||
return '<td class="cell"> </td>';
|
||||
}
|
||||
$plusfactor = '<input type="text" size="3" id="plusfactor_'.$item->id.'" name="plusfactor_'.$item->id.'" value="'.format_float($item->plusfactor).'" />';
|
||||
$plusfactor = '<input type="text" size="4" id="plusfactor_'.$item->id.'" name="plusfactor_'.$item->id.'" value="'.format_float($item->plusfactor, 4).'" />';
|
||||
return '<td class="cell">'.$plusfactor.'</td>';
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user