Exemplo n.º 1
0
 /**
  * Processes the data sent by the form (grades and feedbacks).
  * Caller is responsible for all access control checks
  * @param array $data form submission (with magic quotes)
  * @return array empty array if success, array of warnings if something fails.
  */
 public function process_data($data)
 {
     global $CFG, $DB, $COURSE, $USER;
     //ESto es lo que acabo de añadir
     // Para guardar la actividad en la bd de evalcomix
     include_once $CFG->dirroot . '/blocks/evalcomix/classes/webservice_evalcomix_client.php';
     include_once $CFG->dirroot . '/blocks/evalcomix/classes/evalcomix_tasks.php';
     include_once $CFG->dirroot . '/blocks/evalcomix/classes/evalcomix_tool.php';
     //para quitar notice
     $save_conf_act = 0;
     if (isset($data['cmid'])) {
         $activity = $data['cmid'];
         $module = evalcomix_tasks::get_type_task($activity);
         $save_conf_act = 1;
     }
     $timeavailableAE = 0;
     $timedueAE = 0;
     $idtoolAE = 0;
     $pon_AE = 0;
     $timeavailableEI = 0;
     $timedueEI = 0;
     $idtoolEI = 0;
     $pon_EI = 0;
     $idtoolEP = 0;
     $pon_EP = 0;
     if (isset($data['toolEP']) && $data['toolEP'] != 0) {
         $toolEP = evalcomix_tool::fetch(array('id' => $data['toolEP']));
         $idtoolEP = $toolEP->idtool;
         $pon_EP = $data['pon_EP'];
     }
     if (isset($data['toolAE']) && $data['toolAE'] != 0) {
         $timeavailableAE = mktime($data['hour_available_AE'], $data['minute_available_AE'], 0, $data['month_available_AE'], $data['day_available_AE'], $data['year_available_AE']);
         $timedueAE = mktime($data['hour_timedue_AE'], $data['minute_timedue_AE'], 0, $data['month_timedue_AE'], $data['day_timedue_AE'], $data['year_timedue_AE']);
         $toolAE = evalcomix_tool::fetch(array('id' => $data['toolAE']));
         $idtoolAE = $toolAE->idtool;
         $pon_AE = $data['pon_AE'];
     }
     if (isset($data['toolEI']) && $data['toolEI'] != 0) {
         $timeavailableEI = mktime($data['hour_available_EI'], $data['minute_available_EI'], 0, $data['month_available_EI'], $data['day_available_EI'], $data['year_available_EI']);
         $timedueEI = mktime($data['hour_timedue_EI'], $data['minute_timedue_EI'], 0, $data['month_timedue_EI'], $data['day_timedue_EI'], $data['year_timedue_EI']);
         $toolEI = evalcomix_tool::fetch(array('id' => $data['toolEI']));
         $idtoolEI = $toolEI->idtool;
         $pon_EI = $data['pon_EI'];
     }
     /*if($save_conf_act == 1){
     			$result = webservice_evalcomix_client::put_ws_savetask($COURSE->id, $module, $activity, $idtoolEP, $idtoolAE, $idtoolEI, $pon_EP, $pon_AE, $pon_EI, $timeavailableAE, $timedueAE, $timeavailableEI, $timedueEI, MOODLE_NAME);				
     		}*/
     //Hasta aquí---------------------
     if (isset($data['save']) && $data['save'] == get_string('save', 'block_evalcomix')) {
         include_once $CFG->dirroot . '/blocks/evalcomix/classes/evalcomix_tasks.php';
         include_once $CFG->dirroot . '/blocks/evalcomix/classes/evalcomix_modes.php';
         include_once $CFG->dirroot . '/blocks/evalcomix/classes/evalcomix_modes_time.php';
         include_once $CFG->dirroot . '/blocks/evalcomix/classes/evalcomix_modes_extra.php';
         $data_exists = false;
         $task_exists = false;
         $modality_delete = false;
         $taskid = null;
         if (isset($data['toolEP']) && $data['toolEP'] != '0' || isset($data['toolAE']) && $data['toolAE'] != '0' || isset($data['toolEI']) && $data['toolEI'] != '0') {
             $data_exists = true;
         }
         $task = new evalcomix_tasks('', $data['cmid'], $data['maxgrade'], '50', time());
         if ($taskid = $task->exist()) {
             $task_exists = true;
             $params = array('id' => $taskid);
             evalcomix_tasks::set_properties($task, $params);
             $task->update();
         } elseif ($data_exists == true) {
             $taskid = $task->insert();
         }
         if ($data['toolEP'] != 0) {
             $modeEP = new evalcomix_modes('', $taskid, $data['toolEP'], 'teacher', $data['pon_EP']);
             if ($modeid = $modeEP->exist()) {
                 $params = array('id' => $modeid);
                 evalcomix_modes::set_properties($modeEP, $params);
                 $modeEP->update();
             } else {
                 $modeid = $modeEP->insert();
             }
         } elseif ($task_exists == true) {
             $modeEP = new evalcomix_modes('', $taskid, '', 'teacher');
             if ($modeid = $modeEP->exist()) {
                 $modeEP->delete();
                 $modality_delete = true;
             }
         }
         if ($data['toolAE'] != 0) {
             $modeAE = new evalcomix_modes('', $taskid, $data['toolAE'], 'self', $data['pon_AE']);
             if ($modeid = $modeAE->exist()) {
                 $params = array('id' => $modeid);
                 evalcomix_modes::set_properties($modeAE, $params);
                 $modeAE->update();
                 $timeavailable = mktime($data['hour_available_AE'], $data['minute_available_AE'], 0, $data['month_available_AE'], $data['day_available_AE'], $data['year_available_AE']);
                 $timedue = mktime($data['hour_timedue_AE'], $data['minute_timedue_AE'], 0, $data['month_timedue_AE'], $data['day_timedue_AE'], $data['year_timedue_AE']);
                 $modeAE_time = new evalcomix_modes_time('', $modeid, $timeavailable, $timedue);
                 if ($modeAE_timeid = $modeAE_time->exist()) {
                     $params = array('id' => $modeAE_timeid);
                     evalcomix_modes::set_properties($modeAE_time, $params);
                     $modeAE_time->update();
                 }
             } else {
                 $modeid = $modeAE->insert();
                 $timeavailable = mktime($data['hour_available_AE'], $data['minute_available_AE'], 0, $data['month_available_AE'], $data['day_available_AE'], $data['year_available_AE']);
                 $timedue = mktime($data['hour_timedue_AE'], $data['minute_timedue_AE'], 0, $data['month_timedue_AE'], $data['day_timedue_AE'], $data['year_timedue_AE']);
                 $modeAE_time = new evalcomix_modes_time('', $modeid, $timeavailable, $timedue);
                 $modeAE_time->insert();
             }
         } elseif ($task_exists == true) {
             $modeAE = new evalcomix_modes('', $taskid, '', 'self');
             if ($modeid = $modeAE->exist()) {
                 $modeAE_time = new evalcomix_modes_time('', $modeid);
                 if ($modeAE_time->exist()) {
                     $modeAE_time->delete();
                 }
                 $modeAE->delete();
                 $modality_delete = true;
             }
         }
         if ($data['toolEI'] != 0) {
             $anonymous = 0;
             if (isset($data['anonymousEI']) && $data['anonymousEI'] == 'on') {
                 $anonymous = 1;
             }
             $alwaysvisible = 0;
             if (isset($data['alwaysvisibleEI']) && $data['alwaysvisibleEI']) {
                 $alwaysvisible = 1;
             }
             $whoassesses = 0;
             if (isset($data['whoassessesEI']) && $data['whoassessesEI']) {
                 $whoassesses = $data['whoassessesEI'];
             }
             $modeEI = new evalcomix_modes('', $taskid, $data['toolEI'], 'peer', $data['pon_EI']);
             if ($modeid = $modeEI->exist()) {
                 $params = array('id' => $modeid);
                 evalcomix_modes::set_properties($modeEI, $params);
                 $modeEI->update();
                 $timeavailable = mktime($data['hour_available_EI'], $data['minute_available_EI'], 0, $data['month_available_EI'], $data['day_available_EI'], $data['year_available_EI']);
                 $timedue = mktime($data['hour_timedue_EI'], $data['minute_timedue_EI'], 0, $data['month_timedue_EI'], $data['day_timedue_EI'], $data['year_timedue_EI']);
                 $modeEI_time = new evalcomix_modes_time('', $modeid, $timeavailable, $timedue);
                 if ($modeEI_timeid = $modeEI_time->exist()) {
                     $params = array('id' => $modeEI_timeid);
                     evalcomix_modes_time::set_properties($modeEI_time, $params);
                     $modeEI_time->update();
                 }
                 $modeEI_extra = new evalcomix_modes_extra('', $modeid, $anonymous, $alwaysvisible, $whoassesses);
                 $modeEI_extraObject = $DB->get_record('block_evalcomix_modes_extra', array('modeid' => $modeid));
                 $modeEI_extraid = $modeEI_extraObject->id;
                 $params = array('id' => $modeEI_extraid, 'anonymous' => $anonymous, 'visible' => $alwaysvisible, 'whoassesses' => $whoassesses);
                 evalcomix_modes_extra::set_properties($modeEI_extra, $params);
                 $modeEI_extra->update();
             } else {
                 $modeid = $modeEI->insert();
                 $timeavailable = mktime($data['hour_available_EI'], $data['minute_available_EI'], 0, $data['month_available_EI'], $data['day_available_EI'], $data['year_available_EI']);
                 $timedue = mktime($data['hour_timedue_EI'], $data['minute_timedue_EI'], 0, $data['month_timedue_EI'], $data['day_timedue_EI'], $data['year_timedue_EI']);
                 $modeEI_time = new evalcomix_modes_time('', $modeid, $timeavailable, $timedue);
                 $modeEI_time->insert();
                 $modeEI_extra = new evalcomix_modes_extra('', $modeid, $anonymous, $alwaysvisible, $whoassesses);
                 $modeEI_extra->insert();
             }
         } elseif ($task_exists == true) {
             $modeEI = new evalcomix_modes('', $taskid, '', 'peer');
             if ($modeid = $modeEI->exist()) {
                 $modeEI_extra = new evalcomix_modes_extra('', $modeid);
                 if ($modeEI_extra->exist()) {
                     $modeEI_extra->delete();
                 }
                 $modeEI_time = new evalcomix_modes_time('', $modeid);
                 if ($modeEI_time->exist()) {
                     $modeEI_time->delete();
                 }
                 $modeEI->delete();
                 $modality_delete = true;
             }
         }
         if ($task_exists == true && $data_exists == true) {
             include_once $CFG->dirroot . '/blocks/evalcomix/classes/evalcomix_grades.php';
             if ($grades = evalcomix_grades::fetch_all(array('courseid' => $this->courseid, 'cmid' => $task->instanceid))) {
                 foreach ($grades as $grade) {
                     $user = $grade->userid;
                     $params = array('cmid' => $task->instanceid, 'userid' => $user, 'courseid' => $this->courseid);
                     $finalgrade = evalcomix_grades::get_finalgrade_user_task($params);
                     if ($finalgrade !== null) {
                         $grade->finalgrade = $finalgrade;
                         $grade->update();
                     }
                 }
             }
         }
         /*elseif($data_exists != true){
         			include_once($CFG->dirroot .'/blocks/evalcomix/classes/evalcomix_grades.php');
         		
         			if($grades = evalcomix_grades::fetch_all(array('courseid' => $this->courseid, 'cmid' => $task->instanceid))){
         				foreach($grades as $grade){
         					$grade->finalgrade = -3;
         					$grade->update();						
         				}
         			}
         		}*/
         //Recalculamos en cualquier caso las notas
         include_once $CFG->dirroot . '/blocks/evalcomix/classes/evalcomix_grades.php';
         if ($grades = evalcomix_grades::fetch_all(array('courseid' => $this->courseid, 'cmid' => $task->instanceid))) {
             foreach ($grades as $grade) {
                 $user = $grade->userid;
                 $params = array('cmid' => $task->instanceid, 'userid' => $user, 'courseid' => $this->courseid);
                 $finalgrade = evalcomix_grades::get_finalgrade_user_task($params);
                 if ($finalgrade !== null) {
                     $grade->finalgrade = $finalgrade;
                     $grade->update();
                 }
             }
         }
     } elseif (isset($data['cancel']) && $data['cancel'] == 'cancel') {
     }
     // Comprobar si hay datos de alguna evaluación realizada con evalcomix para guardarla en la base de datos de Moodle
     // Se hace aquí ya que ese método se procesa cada vez que se recarga la página
     if (isset($data['stu']) && $data['stu'] != 0 && $data['cma'] != 0) {
         $activity = $data['cma'];
         $module = evalcomix_tasks::get_type_task($activity);
         //$mode = $this->get_type_evaluation($data['stu']);
         $mode = grade_report_evalcomix::get_type_evaluation($data['stu'], $this->courseid);
         /*echo $COURSE->id . '<br>';
         		echo $module . '<br>';
         		echo $activity . '<br>';
         		echo $data['stu'] . '<br>';
         		echo $USER->id . '<br>';
         		echo $mode . '<br>';
         		echo MOODLE_NAME . '<br>';*/
         $task = new evalcomix_tasks('', $data['cma']);
         if ($taskid = $task->exist()) {
             $tool = get_evalcomix_modality_tool($this->courseid, $taskid, $mode);
             $evalcomix_assessment = webservice_evalcomix_client::get_ws_singlegrade($tool->idtool, $this->courseid, $module, $activity, $data['stu'], $USER->id, $mode, MOODLE_NAME);
         }
         //if $evalcomix_assessment->grade == -1  means that the grade is empty
         if ($evalcomix_assessment != null) {
             //Checks if the assessment exists in the table mdl_blocks_evalcomix_assessments
             $params = array('taskid' => $evalcomix_assessment->taskid, 'assessorid' => $evalcomix_assessment->assessorid, 'studentid' => $evalcomix_assessment->studentid);
             $evx_assessment_object = evalcomix_assessments::fetch($params);
             //print_r($evx_assessment_object);
             //echo $evalcomix_assessment->grade;
             //					if ($evx_assessment_object != null) {
             if ($evx_assessment_object != false) {
                 if ($evalcomix_assessment->grade != -1) {
                     //If the grade is not null
                     $evx_assessment_object->grade = $evalcomix_assessment->grade;
                     $evx_assessment_object->update();
                 } else {
                     //If the grade is null
                     $evx_assessment_object->delete();
                 }
             } elseif ($evalcomix_assessment->grade != -1) {
                 //if it does not exist and the grade is not null inserts it
                 $evalcomix_assessment->insert();
             }
         }
         //Save the finalgrade
         include_once $CFG->dirroot . '/blocks/evalcomix/classes/evalcomix_grades.php';
         $params = array('cmid' => $data['cma'], 'userid' => $data['stu'], 'courseid' => $this->courseid);
         $finalgrade = evalcomix_grades::get_finalgrade_user_task($params);
         if ($finalgrade !== null) {
             if ($gradeObject = evalcomix_grades::fetch($params)) {
                 $gradeObject->finalgrade = $finalgrade;
                 $gradeObject->update();
             } else {
                 $params['finalgrade'] = $finalgrade;
                 $gradeObject = new evalcomix_grades($params);
                 $gradeObject->insert();
             }
         } else {
             if ($gradeObject = evalcomix_grades::fetch($params)) {
                 $gradeObject->delete();
             }
         }
     }
 }
Exemplo n.º 2
0
        foreach ($tasks as $task) {
            if ($assessments = evalcomix_assessments::fetch_all(array('taskid' => $task->id))) {
                foreach ($assessments as $assessment) {
                    $activity = $task->instanceid;
                    $module = evalcomix_tasks::get_type_task($activity);
                    $mode = grade_report_evalcomix::get_type_evaluation($assessment->studentid, $courseid, $assessment->assessorid);
                    $str = $courseid . '_' . $module . '_' . $activity . '_' . $assessment->studentid . '_' . $assessment->assessorid . '_' . $mode . '_' . MOODLE_NAME;
                    $assessmentid = md5($str);
                    if (isset($newgrades[$assessmentid])) {
                        $grade = $newgrades[$assessmentid]->grade;
                        $toolids[] = $newgrades[$assessmentid]->toolid;
                        $assessment->grade = $grade;
                        $assessment->update();
                        if ($evalcomix_grade = evalcomix_grades::fetch(array('courseid' => $courseid, 'cmid' => $task->instanceid, 'userid' => $assessment->studentid))) {
                            $params = array('cmid' => $task->instanceid, 'userid' => $assessment->studentid, 'courseid' => $courseid);
                            $finalgrade = evalcomix_grades::get_finalgrade_user_task($params);
                            if ($finalgrade !== null) {
                                $evalcomix_grade->finalgrade = $finalgrade;
                                $evalcomix_grade->update();
                            }
                        }
                    }
                }
            }
        }
        webservice_evalcomix_client::set_assessments_modified(array('toolids' => $toolids));
    }
}
//////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////// Logo y enlace a la gestión de instrumentos /////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////
Exemplo n.º 3
0
/**
 * @param int $oldversion
 */
function xmldb_block_evalcomix_upgrade($oldversion = 201111802)
{
    global $DB;
    $dbman = $DB->get_manager();
    $result = true;
    /// Add a new column newcol to the mdl_question_myqtype
    if ($oldversion < 2012013005) {
        // Define table block_evalcomix to be created
        $table = new xmldb_table('block_evalcomix');
        // Adding fields to table block_evalcomix
        $table->add_field('id', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, XMLDB_NOTNULL, XMLDB_SEQUENCE, null);
        $table->add_field('courseid', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, XMLDB_NOTNULL, null, '0');
        $table->add_field('viewmode', XMLDB_TYPE_CHAR, '10', null, XMLDB_NOTNULL, null, 'evx');
        $table->add_field('sendgradebook', XMLDB_TYPE_INTEGER, '1', XMLDB_UNSIGNED, null, null, '0');
        // Adding keys to table block_evalcomix
        $table->add_key('id', XMLDB_KEY_PRIMARY, array('id'));
        // Conditionally launch create table for block_evalcomix
        if (!$dbman->table_exists($table)) {
            $dbman->create_table($table);
        }
        // evalcomix savepoint reached
        upgrade_block_savepoint(true, 2012013005, 'evalcomix');
    }
    if ($oldversion < 2012013004) {
        // Define table block_evalcomix_tasks to be created
        $table = new xmldb_table('block_evalcomix_tasks');
        // Adding fields to table block_evalcomix_tasks
        $table->add_field('id', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, XMLDB_NOTNULL, XMLDB_SEQUENCE, null);
        $table->add_field('instanceid', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, XMLDB_NOTNULL, null, '0');
        $table->add_field('maxgrade', XMLDB_TYPE_NUMBER, '10, 5', null, null, null, '0');
        $table->add_field('weighing', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, XMLDB_NOTNULL, null, '0');
        $table->add_field('timemodified', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, XMLDB_NOTNULL, null, '0');
        // Adding keys to table block_evalcomix_tasks
        $table->add_key('primary', XMLDB_KEY_PRIMARY, array('id'));
        // Conditionally launch create table for block_evalcomix_tasks
        if (!$dbman->table_exists($table)) {
            $dbman->create_table($table);
        }
        // evalcomix savepoint reached
        upgrade_block_savepoint(true, 2012013004, 'evalcomix');
    }
    if ($oldversion < 2012013004) {
        // Define table block_evalcomix_modes to be created
        $table = new xmldb_table('block_evalcomix_modes');
        // Adding fields to table block_evalcomix_modes
        $table->add_field('id', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, XMLDB_NOTNULL, XMLDB_SEQUENCE, null);
        $table->add_field('taskid', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, XMLDB_NOTNULL, null, '0');
        $table->add_field('toolid', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, XMLDB_NOTNULL, null, '0');
        $table->add_field('modality', XMLDB_TYPE_CHAR, '7', null, XMLDB_NOTNULL, null, 'teacher');
        $table->add_field('weighing', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, XMLDB_NOTNULL, null, '0');
        // Adding keys to table block_evalcomix_modes
        $table->add_key('primary', XMLDB_KEY_PRIMARY, array('id'));
        // Conditionally launch create table for block_evalcomix_modes
        if (!$dbman->table_exists($table)) {
            $dbman->create_table($table);
        }
        // evalcomix savepoint reached
        upgrade_block_savepoint(true, 2012013004, 'evalcomix');
    }
    if ($oldversion < 2012013004) {
        // Define table block_evalcomix_modes_time to be created
        $table = new xmldb_table('block_evalcomix_modes_time');
        // Adding fields to table block_evalcomix_modes_time
        $table->add_field('id', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, XMLDB_NOTNULL, XMLDB_SEQUENCE, null);
        $table->add_field('modeid', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, XMLDB_NOTNULL, null, '0');
        $table->add_field('timeavailable', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, null, null, '0');
        $table->add_field('timedue', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, null, null, '0');
        // Adding keys to table block_evalcomix_modes_time
        $table->add_key('primary', XMLDB_KEY_PRIMARY, array('id'));
        // Conditionally launch create table for block_evalcomix_modes_time
        if (!$dbman->table_exists($table)) {
            $dbman->create_table($table);
        }
        // evalcomix savepoint reached
        upgrade_block_savepoint(true, 2012013004, 'evalcomix');
    }
    //if ($oldversion < 2013110600) {
    if ($oldversion < 2012013004) {
        // Define table block_evalcomix_modes_extra to be created.
        $table = new xmldb_table('block_evalcomix_modes_extra');
        // Adding fields to table block_evalcomix_modes_extra.
        $table->add_field('id', XMLDB_TYPE_INTEGER, '10', null, XMLDB_NOTNULL, XMLDB_SEQUENCE, null);
        $table->add_field('anonymous', XMLDB_TYPE_INTEGER, '1', null, null, null, '0');
        $table->add_field('modeid', XMLDB_TYPE_INTEGER, '10', null, XMLDB_NOTNULL, null, '0');
        // Adding keys to table block_evalcomix_modes_extra.
        $table->add_key('primary', XMLDB_KEY_PRIMARY, array('id'));
        // Conditionally launch create table for block_evalcomix_modes_extra.
        if (!$dbman->table_exists($table)) {
            $dbman->create_table($table);
        }
        // Evalcomix savepoint reached.
        //upgrade_block_savepoint(true, 2013110600, 'evalcomix');
        upgrade_block_savepoint(true, 2012013004, 'evalcomix');
    } else {
    }
    //if ($oldversion < 2013090502) {
    if ($oldversion < 2012013004) {
        // Define table block_evalcomix_tools to be created
        $table = new xmldb_table('block_evalcomix_tools');
        // Adding fields to table block_evalcomix_tools
        $table->add_field('id', XMLDB_TYPE_INTEGER, '10', null, XMLDB_NOTNULL, XMLDB_SEQUENCE, null);
        $table->add_field('evxid', XMLDB_TYPE_INTEGER, '10', null, XMLDB_NOTNULL, null, '0');
        $table->add_field('title', XMLDB_TYPE_TEXT, null, null, XMLDB_NOTNULL, null, null);
        $table->add_field('type', XMLDB_TYPE_CHAR, '12', null, XMLDB_NOTNULL, null, 'scale');
        $table->add_field('timecreated', XMLDB_TYPE_INTEGER, '10', null, null, null, '0');
        $table->add_field('timemodified', XMLDB_TYPE_INTEGER, '10', null, null, null, '0');
        $table->add_field('idtool', XMLDB_TYPE_CHAR, '20', null, XMLDB_NOTNULL, null, '0');
        // Adding keys to table block_evalcomix_tools
        $table->add_key('primary', XMLDB_KEY_PRIMARY, array('id'));
        // Conditionally launch create table for block_evalcomix_tools
        if (!$dbman->table_exists($table)) {
            $dbman->create_table($table);
        }
        // evalcomix savepoint reached
        //upgrade_block_savepoint(true, 2013090502, 'evalcomix');
        upgrade_block_savepoint(true, 2012013004, 'evalcomix');
    }
    if ($oldversion < 2013102505) {
        // Define table block_evalcomix_grades to be created.
        $table = new xmldb_table('block_evalcomix_grades');
        // Adding fields to table block_evalcomix_grades.
        $table->add_field('id', XMLDB_TYPE_INTEGER, '10', null, XMLDB_NOTNULL, XMLDB_SEQUENCE, null);
        $table->add_field('userid', XMLDB_TYPE_INTEGER, '10', null, XMLDB_NOTNULL, null, null);
        $table->add_field('cmid', XMLDB_TYPE_INTEGER, '10', null, XMLDB_NOTNULL, null, null);
        $table->add_field('finalgrade', XMLDB_TYPE_NUMBER, '10, 5', null, null, null, null);
        $table->add_field('courseid', XMLDB_TYPE_INTEGER, '10', null, XMLDB_NOTNULL, null, null);
        // Adding keys to table block_evalcomix_grades.
        $table->add_key('primary', XMLDB_KEY_PRIMARY, array('id'));
        // Conditionally launch create table for block_evalcomix_grades.
        if (!$dbman->table_exists($table)) {
            $dbman->create_table($table);
        }
        // Evalcomix savepoint reached.
        upgrade_block_savepoint(true, 2013102505, 'evalcomix');
        global $CFG;
        include_once $CFG->dirroot . '/blocks/evalcomix/classes/evalcomix_grades.php';
        include_once $CFG->dirroot . '/blocks/evalcomix/classes/evalcomix_tasks.php';
        include_once $CFG->dirroot . '/blocks/evalcomix/classes/evalcomix_assessments.php';
        include_once $CFG->dirroot . '/blocks/evalcomix/classes/evalcomix_modes_extra.php';
        include_once $CFG->dirroot . '/blocks/evalcomix/classes/evalcomix_modes_time.php';
        if ($tasks = evalcomix_tasks::fetch_all(array())) {
            foreach ($tasks as $task) {
                echo '<br><br><br>Procesando task: ' . $task->id . '<br>';
                echo 'Finalgrades asociados: <br>';
                if ($cm = $DB->get_record('course_modules', array('id' => $task->instanceid))) {
                    $courseid = $cm->course;
                    if ($assessments = evalcomix_assessments::fetch_all(array('taskid' => $task->id))) {
                        foreach ($assessments as $assessment) {
                            $params = array();
                            //cmid -- userid -- courseid
                            $params['cmid'] = $task->instanceid;
                            $params['userid'] = $assessment->studentid;
                            $params['courseid'] = $courseid;
                            $finalgrade = evalcomix_grades::get_finalgrade_user_task($params);
                            echo "finalgrade: {$finalgrade} <br>";
                            if ($finalgrade !== null) {
                                if ($gradeObject = evalcomix_grades::fetch($params)) {
                                    $gradeObject->finalgrade = $finalgrade;
                                    $gradeObject->update();
                                } else {
                                    $params['finalgrade'] = $finalgrade;
                                    $gradeObject = new evalcomix_grades($params);
                                    $gradeObject->insert();
                                }
                            } else {
                                if ($gradeObject = evalcomix_grades::fetch($params)) {
                                    $gradeObject->delete();
                                }
                            }
                        }
                    }
                }
            }
        }
    }
    if ($oldversion < 2013111801) {
        // Define table block_evalcomix_allowedusers to be created.
        $table = new xmldb_table('block_evalcomix_allowedusers');
        // Adding fields to table block_evalcomix_allowedusers.
        $table->add_field('id', XMLDB_TYPE_INTEGER, '10', null, XMLDB_NOTNULL, XMLDB_SEQUENCE, null);
        $table->add_field('cmid', XMLDB_TYPE_INTEGER, '10', null, XMLDB_NOTNULL, null, null);
        $table->add_field('assessorid', XMLDB_TYPE_INTEGER, '10', null, XMLDB_NOTNULL, null, null);
        $table->add_field('studentid', XMLDB_TYPE_INTEGER, '10', null, XMLDB_NOTNULL, null, null);
        // Adding keys to table block_evalcomix_allowedusers.
        $table->add_key('primary', XMLDB_KEY_PRIMARY, array('id'));
        // Conditionally launch create table for block_evalcomix_allowedusers.
        if (!$dbman->table_exists($table)) {
            $dbman->create_table($table);
        }
        // Evalcomix savepoint reached.
        upgrade_block_savepoint(true, 2013111801, 'evalcomix');
    }
    if ($oldversion < 2013111801) {
        // Define field whoassesses to be added to block_evalcomix_modes_extra.
        $table = new xmldb_table('block_evalcomix_modes_extra');
        $field1 = new xmldb_field('visible', XMLDB_TYPE_INTEGER, '1', null, XMLDB_NOTNULL, null, '0');
        if (!$dbman->field_exists($table, $field1)) {
            $dbman->add_field($table, $field1);
        }
        $field2 = new xmldb_field('whoassesses', XMLDB_TYPE_INTEGER, '1', null, XMLDB_NOTNULL, null, '0', 'visible');
        // Conditionally launch add field whoassesses.
        if (!$dbman->field_exists($table, $field2)) {
            $dbman->add_field($table, $field2);
        }
        // Evalcomix savepoint reached.
        upgrade_block_savepoint(true, 2013111802, 'evalcomix');
    }
    if ($oldversion < 2013121700) {
        // Define field visible to be added to block_evalcomix_tasks.
        $table = new xmldb_table('block_evalcomix_tasks');
        $field = new xmldb_field('visible', XMLDB_TYPE_INTEGER, '1', null, null, null, '1', 'timemodified');
        // Conditionally launch add field visible.
        if (!$dbman->field_exists($table, $field)) {
            $dbman->add_field($table, $field);
        }
        // Evalcomix savepoint reached.
        upgrade_block_savepoint(true, 2013121700, 'evalcomix');
    }
    if ($oldversion < 2014040716) {
        // Define field idtool to be added to block_evalcomix_tools.
        $table = new xmldb_table('block_evalcomix_tools');
        $field = new xmldb_field('idtool', XMLDB_TYPE_CHAR, '40', null, XMLDB_NOTNULL, null, '0', 'timemodified');
        // Conditionally launch add field idtool.
        if ($dbman->field_exists($table, $field)) {
            $dbman->change_field_type($table, $field);
        }
        // Evalcomix savepoint reached.
        upgrade_block_savepoint(true, 2014040716, 'evalcomix');
    }
    return $result;
}