Merge branch 'MDL-46978-Master' of github.com:tuanngocnguyen/moodle
This commit is contained in:
@@ -2589,13 +2589,14 @@ class grade_category extends grade_object {
|
||||
*/
|
||||
public function set_hidden($hidden, $cascade=false) {
|
||||
$this->load_grade_item();
|
||||
//this hides the associated grade item (the course total)
|
||||
$this->grade_item->set_hidden($hidden, $cascade);
|
||||
//this hides the category itself and everything it contains
|
||||
parent::set_hidden($hidden, $cascade);
|
||||
|
||||
if ($cascade) {
|
||||
|
||||
// This hides the associated grade item (the course/category total).
|
||||
$this->grade_item->set_hidden($hidden, $cascade);
|
||||
|
||||
if ($children = grade_item::fetch_all(array('categoryid'=>$this->id))) {
|
||||
|
||||
foreach ($children as $child) {
|
||||
@@ -2619,9 +2620,7 @@ class grade_category extends grade_object {
|
||||
if ($category_array && array_key_exists($this->parent, $category_array)) {
|
||||
$category = $category_array[$this->parent];
|
||||
//call set_hidden on the category regardless of whether it is hidden as its parent might be hidden
|
||||
//if($category->is_hidden()) {
|
||||
$category->set_hidden($hidden, false);
|
||||
//}
|
||||
$category->set_hidden($hidden, false);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -681,9 +681,7 @@ class grade_item extends grade_object {
|
||||
if ($category_array && array_key_exists($this->categoryid, $category_array)) {
|
||||
$category = $category_array[$this->categoryid];
|
||||
//call set_hidden on the category regardless of whether it is hidden as its parent might be hidden
|
||||
//if($category->is_hidden()) {
|
||||
$category->set_hidden($hidden, false);
|
||||
//}
|
||||
$category->set_hidden($hidden, false);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -63,6 +63,7 @@ class core_grade_category_testcase extends grade_base_testcase {
|
||||
$this->sub_test_grade_category_is_hidden();
|
||||
$this->sub_test_grade_category_set_hidden();
|
||||
$this->sub_test_grade_category_can_control_visibility();
|
||||
$this->sub_test_grade_category_total_visibility();
|
||||
|
||||
// This won't work until MDL-11837 is complete.
|
||||
// $this->sub_test_grade_category_generate_grades();
|
||||
@@ -784,7 +785,7 @@ class core_grade_category_testcase extends grade_base_testcase {
|
||||
protected function sub_test_grade_category_set_hidden() {
|
||||
$category = new grade_category($this->grade_categories[0]);
|
||||
$this->assertTrue(method_exists($category, 'set_hidden'));
|
||||
$category->set_hidden(1);
|
||||
$category->set_hidden(1, true);
|
||||
$category->load_grade_item();
|
||||
$this->assertEquals(true, $category->grade_item->is_hidden());
|
||||
}
|
||||
@@ -858,4 +859,43 @@ class core_grade_category_testcase extends grade_base_testcase {
|
||||
$this->assertFalse(grade_category::aggregation_uses_extracredit(GRADE_AGGREGATE_MIN));
|
||||
$this->assertFalse(grade_category::aggregation_uses_extracredit(GRADE_AGGREGATE_MODE));
|
||||
}
|
||||
|
||||
/**
|
||||
* Test for category total visibility.
|
||||
*/
|
||||
protected function sub_test_grade_category_total_visibility() {
|
||||
// 15 is a manual grade item in grade_categories[5].
|
||||
$category = new grade_category($this->grade_categories[5], true);
|
||||
$gradeitem = new grade_item($this->grade_items[15], true);
|
||||
|
||||
// Hide grade category.
|
||||
$category->set_hidden(true, true);
|
||||
$this->assertTrue($category->is_hidden());
|
||||
// Category total is hidden.
|
||||
$categorytotal = $category->get_grade_item();
|
||||
$this->assertTrue($categorytotal->is_hidden());
|
||||
// Manual grade is hidden.
|
||||
$gradeitem->update_from_db();
|
||||
$this->assertTrue($gradeitem->is_hidden());
|
||||
|
||||
// Unhide manual grade item.
|
||||
$gradeitem->set_hidden(false);
|
||||
$this->assertFalse($gradeitem->is_hidden());
|
||||
// Category is unhidden.
|
||||
$category->update_from_db();
|
||||
$this->assertFalse($category->is_hidden());
|
||||
// Category total remain hidden.
|
||||
$categorytotal = $category->get_grade_item();
|
||||
$this->assertTrue($categorytotal->is_hidden());
|
||||
|
||||
// Edit manual grade item.
|
||||
$this->assertFalse($gradeitem->is_locked());
|
||||
$gradeitem->set_locked(true);
|
||||
$gradeitem->update_from_db();
|
||||
$this->assertTrue($gradeitem->is_locked());
|
||||
// Category total should still be hidden.
|
||||
$category->update_from_db();
|
||||
$categorytotal = $category->get_grade_item();
|
||||
$this->assertTrue($categorytotal->is_hidden());
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user