MDL-19323 added missing support for localized floats + code cleanup; merged from MOODLE_19_STABLE

This commit is contained in:
skodak
2009-05-30 13:01:20 +00:00
parent ae3d3a03ef
commit cd3a391cf5
2 changed files with 53 additions and 74 deletions
+33 -52
View File
@@ -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
View File
@@ -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">&nbsp;</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">&nbsp;</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>';
}