From 497ce9f10ea512afdb77cc0d2130c022195d74de Mon Sep 17 00:00:00 2001 From: Yoselyn Castillo Date: Fri, 21 Jun 2013 12:11:00 -0400 Subject: [PATCH] Creating links inside categories in session assessments --- main/gradebook/index.php | 2 +- main/gradebook/lib/be/category.class.php | 28 +++++++++++++++++++++--- 2 files changed, 26 insertions(+), 4 deletions(-) diff --git a/main/gradebook/index.php b/main/gradebook/index.php index 3c6fa0784e..d62927006c 100644 --- a/main/gradebook/index.php +++ b/main/gradebook/index.php @@ -821,7 +821,7 @@ if (isset($first_time) && $first_time==1 && api_is_allowed_to_edit(null,true)) { foreach ($cats as $cat) { $allcat = $cat->get_subcategories($stud_id, $course_code, $session_id); $alleval = $cat->get_evaluations($stud_id); - $alllink = $cat->get_links($stud_id); + $alllink = $cat->get_links($stud_id,true); if ($cat->get_parent_id() != 0 ) { $i++; diff --git a/main/gradebook/lib/be/category.class.php b/main/gradebook/lib/be/category.class.php index 1c3a18e4ee..14908ca174 100644 --- a/main/gradebook/lib/be/category.class.php +++ b/main/gradebook/lib/be/category.class.php @@ -162,7 +162,29 @@ class Category implements GradebookItem } // CRUD FUNCTIONS - + public static function load_session_categories($id = null, $session_id = null) { + + if ( isset($id) && (int)$id === 0 ) { + $cats = array(); + $cats[] = Category::create_root_category(); + return $cats; + } + $cat = array(); + $cats = array(); + if (!empty ($session_id)) { + $tbl_grade_categories = Database :: get_main_table(TABLE_MAIN_GRADEBOOK_CATEGORY); + $sql_session = 'SELECT id FROM '.$tbl_grade_categories. ' WHERE session_id = '.$session_id; + $result_session = Database::query($sql_session); + if (Database::num_rows($result_session) > 0) { + $data_session = Database::fetch_array($result_session); + $parent_id = $data_session['id']; + $cat = Category::load($parent_id); + $cats = Category::load(null, null, null, $parent_id, null, null, $order); + return array_merge($cat,$cats); + } + } + } + /** * Retrieve categories and return them as an array of Category objects * @param int category id @@ -1178,7 +1200,7 @@ class Category implements GradebookItem public function get_subcategories ($stud_id = null, $course_code = null, $session_id = null, $order = null) { if (!empty ($session_id)) { $tbl_grade_categories = Database :: get_main_table(TABLE_MAIN_GRADEBOOK_CATEGORY); - $sql_session = 'SELECT * FROM '.$tbl_grade_categories. 'WHERE session_id = '.$session_id; + $sql_session = 'SELECT id FROM '.$tbl_grade_categories. ' WHERE session_id = '.$session_id; $result_session = Database::query($sql_session); if (Database::num_rows($result_session) > 0) { $data_session = Database::fetch_array($result_session); @@ -1263,7 +1285,7 @@ class Category implements GradebookItem foreach ($subcats as $subcat) { $subevals = $subcat->get_evaluations($stud_id, true, $course_code); //$this->debugprint($subevals); - $evals = array_merge($evals, $subevals); + $evals = $subevals; } } }