MDL-78082 core_grades: Incomplete Grade Item Handling Enhanced
Problem: In grade_edittree_column_status::get_category_cell, an assumption was made that $category->grade_item is always populated. However, this was not guaranteed, leading to potential issues. Solution: To ensure $category->grade_item availability, a $category->load_grade_item(); call was introduced in grade_edittree_column_status::get_category_cell. This guarantees safe usage of $category->grade_item. Furthermore, in grade_edit_tree::build_html_tree, $category->get_grade_item() was replaced with $category->load_grade_item() for enhanced reliability and potential performance improvement. Explanation: These changes enhance robustness and efficiency in gradebook. Addressing incomplete grade item handling improves code reliability and user experiences.
This commit is contained in:
@@ -158,7 +158,7 @@ class grade_edit_tree {
|
||||
$level++;
|
||||
$this->categories[$object->id] = $strippedname;
|
||||
$category = grade_category::fetch(array('id' => $object->id));
|
||||
$item = $category->get_grade_item();
|
||||
$category->load_grade_item();
|
||||
|
||||
// Add aggregation coef input if not a course item and if parent category has correct aggregation type
|
||||
// Before we print the category's row, we must find out how many rows will appear below it (for the filler cell's rowspan)
|
||||
@@ -271,7 +271,7 @@ class grade_edit_tree {
|
||||
$categoryrow->id = 'grade-item-' . $eid;
|
||||
$categoryrow->attributes['class'] = $courseclass . ' category ';
|
||||
$categoryrow->attributes['data-category'] = $eid;
|
||||
$categoryrow->attributes['data-itemid'] = $category->get_grade_item()->id;
|
||||
$categoryrow->attributes['data-itemid'] = $category->grade_item->id;
|
||||
$categoryrow->attributes['data-hidden'] = 'false';
|
||||
foreach ($rowclasses as $class) {
|
||||
$categoryrow->attributes['class'] .= ' ' . $class;
|
||||
@@ -1058,6 +1058,8 @@ class grade_edit_tree_column_status extends grade_edit_tree_column {
|
||||
*/
|
||||
public function get_category_cell($category, $levelclass, $params) {
|
||||
global $OUTPUT, $gtree;
|
||||
|
||||
$category->load_grade_item();
|
||||
$categorycell = parent::get_category_cell($category, $levelclass, $params);
|
||||
$element = [];
|
||||
$element['object'] = $category;
|
||||
|
||||
Reference in New Issue
Block a user