Disabling creation of an evaluation when creating a gradebook see BT#4878

skala
Julio Montoya 12 years ago
parent e83b15b023
commit 95e5aaf2ba
  1. 2
      main/course_progress/thematic.php
  2. 34
      main/gradebook/lib/be/evaluation.class.php
  3. 4
      main/inc/lib/gradebook.lib.php
  4. 4
      main/inc/lib/model.lib.php
  5. 6
      main/inc/lib/sessionmanager.lib.php
  6. 2
      main/inc/lib/thematic.lib.php
  7. 70
      tests/migrate/migration.custom.class.php

@ -75,7 +75,7 @@ if ($action == 'thematic_list') {
if (!empty($thematic_data)) { if (!empty($thematic_data)) {
// display progress // display progress
echo '<div style="text-align:right;"><h2>'.get_lang('Progress').': <span id="div_result">'.$total_average_of_advances.'</span> %</h2></div>'; echo '<div style="text-align:right;"><h3>'.get_lang('Progress').': <span id="div_result">'.$total_average_of_advances.'</span> %</h3></div>';
echo '<table width="100%" class="data_table">'; echo '<table width="100%" class="data_table">';
echo '<tr><th width="33%">'.get_lang('Thematic').'</th><th>'.get_lang('ThematicPlan').'</th><th width="33%">'.get_lang('ThematicAdvance').'</th></tr>'; echo '<tr><th width="33%">'.get_lang('Thematic').'</th><th>'.get_lang('ThematicPlan').'</th><th width="33%">'.get_lang('ThematicAdvance').'</th></tr>';

@ -20,7 +20,8 @@ class Evaluation implements GradebookItem
private $created_at; private $created_at;
private $weight; private $weight;
private $eval_max; private $eval_max;
private $visible; private $visible;
private $evaluation_type_id;
function __construct() { function __construct() {
} }
@ -127,6 +128,14 @@ class Evaluation implements GradebookItem
$this->locked = $locked; $this->locked = $locked;
} }
public function get_evaluation_type_id() {
return isset($this->evaluation_type_id) ? $this->evaluation_type_id : 0;
}
public function set_evaluation_type_id($id) {
$this->evaluation_type_id = intval($id);
}
// CRUD FUNCTIONS // CRUD FUNCTIONS
/** /**
@ -222,7 +231,9 @@ class Evaluation implements GradebookItem
if (isset($this->category)) { if (isset($this->category)) {
$sql .= ', category_id'; $sql .= ', category_id';
} }
$sql .= ', created_at'; $sql .= ', created_at';
$sql .= ', evaluation_type_id';
$sql .= ',type'; $sql .= ',type';
$sql .= ") VALUES ('".Database::escape_string($this->get_name())."'" $sql .= ") VALUES ('".Database::escape_string($this->get_name())."'"
.','.intval($this->get_user_id()) .','.intval($this->get_user_id())
@ -237,13 +248,16 @@ class Evaluation implements GradebookItem
} }
if (isset($this->category)) { if (isset($this->category)) {
$sql .= ','.intval($this->get_category_id()); $sql .= ','.intval($this->get_category_id());
} }
$sql .= ','.intval($this->get_evaluation_type_id());
if (empty($this->type)) { if (empty($this->type)) {
$this->type = 'evaluation'; $this->type = 'evaluation';
} }
$sql .= ", '".api_get_utc_datetime()."'"; $sql .= ", '".api_get_utc_datetime()."'";
$sql .= ',\''.Database::escape_string($this->type).'\''; $sql .= ',\''.Database::escape_string($this->type).'\'';
$sql .= ")"; $sql .= ")";
Database::query($sql); Database::query($sql);
$this->set_id(Database::insert_id()); $this->set_id(Database::insert_id());
} else { } else {
@ -492,9 +506,7 @@ class Evaluation implements GradebookItem
} }
$this->save(); $this->save();
} }
/** /**
* Retrieve evaluations where a student has results for * Retrieve evaluations where a student has results for
* and return them as an array of Evaluation objects * and return them as an array of Evaluation objects
@ -523,8 +535,6 @@ class Evaluation implements GradebookItem
return $alleval; return $alleval;
} }
/** /**
* Get a list of students that do not have a result record for this evaluation * Get a list of students that do not have a result record for this evaluation
*/ */
@ -546,7 +556,6 @@ class Evaluation implements GradebookItem
return $db_users; return $db_users;
} }
/** /**
* Find evaluations by name * Find evaluations by name
* @param string $name_mask search string * @param string $name_mask search string
@ -565,10 +574,7 @@ class Evaluation implements GradebookItem
return $foundevals; return $foundevals;
} }
// Other methods implementing GradebookItem
// Other methods implementing GradebookItem
public function get_item_type() { public function get_item_type() {
return 'E'; return 'E';
} }

@ -19,7 +19,6 @@ class Gradebook extends Model {
$this->table_skill = Database::get_main_table(TABLE_MAIN_SKILL); $this->table_skill = Database::get_main_table(TABLE_MAIN_SKILL);
$this->table_skill_rel_gradebook = Database::get_main_table(TABLE_MAIN_SKILL_REL_GRADEBOOK); $this->table_skill_rel_gradebook = Database::get_main_table(TABLE_MAIN_SKILL_REL_GRADEBOOK);
} }
/** /**
* Returns true if the gradebook is active and visible in a course, false * Returns true if the gradebook is active and visible in a course, false
@ -150,8 +149,7 @@ class Gradebook extends Model {
$result = Database::query($sql); $result = Database::query($sql);
$result = Database::store_result($result,'ASSOC'); $result = Database::store_result($result,'ASSOC');
return $result; return $result;
} }
/** /**
* Displays the title + grid * Displays the title + grid

@ -98,6 +98,10 @@ class Model {
return Database::select('*', $this->table, $options); return Database::select('*', $this->table, $options);
} }
public function get_first($options = null) {
return Database::select('*', $this->table, $options, 'first');
}
public function get_all_for_export($options = null) { public function get_all_for_export($options = null) {
return Database::select('name, description', $this->table, $options); return Database::select('name, description', $this->table, $options);
} }

@ -91,10 +91,10 @@ class SessionManager {
//Update default course gradebook to the session if exists //Update default course gradebook to the session if exists
$create_gradebook_evaluation = isset($params['create_gradebook_evaluation']) ? $params['create_gradebook_evaluation'] : false; $create_gradebook_evaluation = isset($params['create_gradebook_evaluation']) ? $params['create_gradebook_evaluation'] : false;
if ($create_gradebook_evaluation) { if ($create_gradebook_evaluation) {
require_once api_get_path(SYS_CODE_PATH).'gradebook/lib/gradebook_functions.inc.php'; require_once api_get_path(SYS_CODE_PATH).'gradebook/lib/gradebook_functions.inc.php';
$category_id = create_default_course_gradebook($params['course_code'], false, $session_id); $category_id = create_default_course_gradebook($params['course_code'], false, $session_id);
/*
if ($category_id && isset($params['gradebook_params'])) { if ($category_id && isset($params['gradebook_params'])) {
$eval = new Evaluation(); $eval = new Evaluation();
$eval->set_name($params['gradebook_params']['name']); $eval->set_name($params['gradebook_params']['name']);
@ -105,7 +105,7 @@ class SessionManager {
$eval->set_max($params['gradebook_params']['max']); $eval->set_max($params['gradebook_params']['max']);
$eval->set_visible(0); $eval->set_visible(0);
$eval->add(); $eval->add();
} }*/
/*$tbl_gradebook_category = Database :: get_main_table(TABLE_MAIN_GRADEBOOK_EVALUATION); /*$tbl_gradebook_category = Database :: get_main_table(TABLE_MAIN_GRADEBOOK_EVALUATION);
$sql = "SELECT id FROM $tbl_gradebook_category WHERE course_code = {$params['course_code']} AND session_id = 0 LIMIT 1"; $sql = "SELECT id FROM $tbl_gradebook_category WHERE course_code = {$params['course_code']} AND session_id = 0 LIMIT 1";

@ -286,7 +286,7 @@ class Thematic
WHERE c_id = $course_id AND WHERE c_id = $course_id AND
session_id = $session_id AND session_id = $session_id AND
title = $title AND title = $title AND
active = 1"; active = 1";
$result = Database::query($sql); $result = Database::query($sql);
if (Database::num_rows($result)) { if (Database::num_rows($result)) {
return Database::fetch_array($result, 'ASSOC'); return Database::fetch_array($result, 'ASSOC');

@ -322,12 +322,12 @@ class MigrationCustom {
static function create_session($data) { static function create_session($data) {
//Hack to add the default gradebook course to the session course //Hack to add the default gradebook course to the session course
$data['create_gradebook_evaluation'] = true; $data['create_gradebook_evaluation'] = true;
$data['gradebook_params'] = array( /*$data['gradebook_params'] = array(
'name' => 'General evaluation', 'name' => 'General evaluation',
'user_id' => self::default_admin_id, 'user_id' => self::default_admin_id,
'weight' => '20', 'weight' => '20',
'max' => '20' 'max' => '20'
); );*/
//Here the $data variable has $data['course_code'] that will be added when creating the session //Here the $data variable has $data['course_code'] that will be added when creating the session
$session_id = SessionManager::add($data); $session_id = SessionManager::add($data);
@ -403,12 +403,13 @@ class MigrationCustom {
$link_to_gradebook = false; $link_to_gradebook = false;
//$attendance->category_id = $_POST['category_id']; //$attendance->category_id = $_POST['category_id'];
$attendance_id = $attendance->attendance_add($link_to_gradebook, self::default_admin_id); $attendance_id = $attendance->attendance_add($link_to_gradebook, self::default_admin_id);
error_log("Attendance added course code: {$course['code']} session_id: $session_id"); error_log("Attendance added course code: {$course['code']} - session_id: $session_id");
//only 1 course per session //only 1 course per session
} else { } else {
$attendance_data = current($attendance_list); $attendance_data = current($attendance_list);
$attendance_id = $attendance_data['id']; $attendance_id = $attendance_data['id'];
} error_log("Attendance found in attendance_id = $attendance_id - course code: {$course['code']} - session_id: $session_id");
}
if ($attendance_id) { if ($attendance_id) {
//Attendance date exists? //Attendance date exists?
@ -438,7 +439,7 @@ class MigrationCustom {
} }
static function create_thematic($data) { static function create_thematic($data) {
error_log('create_attendance'); error_log('create_thematic');
$session_id = $data['session_id']; $session_id = $data['session_id'];
if (!empty($session_id)) { if (!empty($session_id)) {
@ -447,37 +448,43 @@ class MigrationCustom {
if (!empty($course_list)) { if (!empty($course_list)) {
$course_data = current($course_list); $course_data = current($course_list);
$course_info = api_get_course_info($course_data['code']); $course_info = api_get_course_info($course_data['code']);
if (!empty($course_data)) { if (!empty($course_data)) {
$thematic = new Thematic(); $thematic = new Thematic();
$thematic->set_course_int_id($course_info['real_id']); $thematic->set_course_int_id($course_info['real_id']);
$thematic->set_session_id($session_id); $thematic->set_session_id($session_id);
$thematic_info = $thematic->get_thematic_by_title($data['thematic']); $thematic_info = $thematic->get_thematic_by_title($data['thematic']);
if (empty($thematic_info)) { if (empty($thematic_info)) {
$thematic->set_thematic_attributes(null, $data['thematic'], null, $session_id); $thematic->set_thematic_attributes(null, $data['thematic'], null, $session_id);
$thematic_id = $thematic->thematic_save(); $thematic_id = $thematic->thematic_save();
error_log("Thematic added to course code: {$course_info['code']} - session_id: $session_id");
} else { } else {
$thematic_id = isset($thematic_info['id']) ? $thematic_info['id'] : null; $thematic_id = isset($thematic_info['id']) ? $thematic_info['id'] : null;
error_log("Thematic id #$thematic_id found in course: {$course_info['code']} - session_id: $session_id");
} }
if ($thematic_id) { if ($thematic_id) {
$thematic->set_thematic_plan_attributes($thematic_id, $data['thematic_plan'], null, 6); $thematic->set_thematic_plan_attributes($thematic_id, $data['thematic_plan'], null, 6);
$thematic->thematic_plan_save(); $thematic->thematic_plan_save();
error_log("Saving plan attributes: {$data['thematic_plan']}");
} }
error_log("Adding thematic id : $thematic_id to session: $session_id to course: {$course_info['code']} real_id: {$course_info['real_id']}");
error_log("Adding thematic id : $thematic_id to session: $session_id to course: {$course_data['code']} real_id: {$course_data['real_id']}");
if ($thematic_id) { if ($thematic_id) {
error_log("Thematic saved: $thematic_id"); error_log("Thematic saved: $thematic_id");
} else { } else {
error_log("Thematic NOT saved"); error_log("Thematic NOT saved");
} }
} }
if ($course_info['code'] != 'B05') {
//exit;
}
} else { } else {
error_log("No courses in session $session_id "); error_log("No courses in session $session_id ");
} }
} }
} }
static function add_evaluation_type($params) { static function add_evaluation_type($params) {
@ -502,8 +509,8 @@ class MigrationCustom {
return false; return false;
} }
static function create_gradebook_links($data){ static function create_gradebook_evaluation($data){
error_log('create_gradebook_links'); error_log('create_gradebook_evaluation');
$session_id = isset($data['session_id']) ? $data['session_id'] : null; $session_id = isset($data['session_id']) ? $data['session_id'] : null;
if (!empty($session_id)) { if (!empty($session_id)) {
@ -513,12 +520,35 @@ class MigrationCustom {
if (isset($course_data['code'])) { if (isset($course_data['code'])) {
//Get gradebook //Get gradebook
$gradebook = new Gradebook(); $gradebook = new Gradebook();
$gradebooks = $gradebook->get_all(array('where' => array('course_code = ? AND session_id = ?' => array($course_data['code'], $session_id)))); $gradebook = $gradebook->get_first(array('where' => array('course_code = ? AND session_id = ?' => array($course_data['code'], $session_id))));
var_dump($course_data['code'], $session_id); error_log("Looking gradebook in course code: {$course_data['code']} - session_id: $session_id");
print_r($gradebooks); if (!empty($gradebook)) {
error_log("Gradebook exists");
echo 'parameters';
var_dump($data);
$eval = new Evaluation();
$eval->set_name($data['gradebook_description']);
$eval->set_description($data['gradebook_description']);
$eval->set_evaluation_type_id($data['gradebook_evaluation_type_id']);
$eval->set_user_id(self::default_admin_id);
$eval->set_course_code($course_data['code']);
$eval->set_category_id($gradebook['id']);
//harcoded values
$eval->set_weight(10);
$eval->set_max(20);
$eval->set_visible(1);
$eval->add();
} else {
error_log("Gradebook does not exists");
}
exit; exit;
} else { } else {
error_log("Something is wrong with the course "); error_log("Something is wrong with the course ");
} }
exit; exit;
} else { } else {

Loading…
Cancel
Save