MDL-33117 grade: added some smarts to the user report method inject_rowspans() to deal with activity conditional availability

This commit is contained in:
Andrew Davis
2012-09-28 12:06:44 +08:00
parent a3ab18c735
commit 69c8bcec70
+20
View File
@@ -228,6 +228,26 @@ class grade_report_user extends grade_report {
}
$count = 1;
foreach ($element['children'] as $key=>$child) {
$grade_object = $child['object'];
// If grade object isn't hidden
if ($grade_object->hidden != 1) {
// If grade object is an module instance
if (!empty($grade_object->itemmodule) && !empty($grade_object->iteminstance)) {
$instances = $this->gtree->modinfo->get_instances();
// If we can find the module instance
if (!empty($instances[$grade_object->itemmodule][$grade_object->iteminstance])) {
$cm = $instances[$grade_object->itemmodule][$grade_object->iteminstance];
// Skip generating rowspans if the user cannot see the module instance
if (!$cm->uservisible) {
continue;
}
}
}
}
$count += $this->inject_rowspans($element['children'][$key]);
}
$element['rowspan'] = $count;