return false; } $cm = $DB->get_record('course_modules', array('id' => $task->instanceid)); //$context = get_context_instance(CONTEXT_COURSE, $cm->course); $context = context_course::instance($cm->course); $selfassessment = null;
</SELECT> </form> <script language=javascript>document.formulario.select.options['.$selection.'].selected = true;</script> '; }*/ ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////// Comprobamos si existen instrumentos modificados con evaluaciones asociadas ///////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// if ($toollist = evalcomix_tool::fetch_all(array('evxid' => $environment->id))) { $newgrades = webservice_evalcomix_client::get_assessments_modified(array('tools' => $toollist)); if (!empty($newgrades)) { include_once $CFG->dirroot . '/blocks/evalcomix/classes/evalcomix_assessments.php'; include_once $CFG->dirroot . '/blocks/evalcomix/classes/evalcomix_grades.php'; $toolids = array(); 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) {
} /** * Calculate gradearray */ public function test_calculate_gradearray() {
include_once $CFG->dirroot . '/blocks/evalcomix/classes/igrade_expert.php'; include_once $CFG->dirroot . '/blocks/evalcomix/classes/evalcomix_assessments.php'; /** * It defined "get_grades" method of "igrade_expert"
/** * @param array tasks * @return array of course assessments by [taskid][assessor][student] */ function load_assessments($tasks) { $result = array(); if (is_array($tasks)) { foreach ($tasks as $task) { if (isset($task->id)) { if ($assessments = evalcomix_assessments::fetch_all(array('taskid' => $task->id))) { $taskid = $task->id; foreach ($assessments as $assessment) { $assessorid = $assessment->assessorid; $studentid = $assessment->studentid; $result[$taskid][$assessorid][$studentid] = $assessment; } } } } } return $result; }
include_once $CFG->dirroot . '/blocks/evalcomix/classes/webservice_evalcomix_client.php'; include_once $CFG->dirroot . '/blocks/evalcomix/classes/evalcomix_assessments.php'; include_once $CFG->dirroot . '/blocks/evalcomix/classes/evalcomix_allowedusers.php'; include_once $CFG->dirroot . '/blocks/evalcomix/configeval.php'; include_once $CFG->dirroot . '/blocks/evalcomix/assessment/lib.php'; $mode = grade_report_evalcomix::get_type_evaluation($userid, $courseid); //Obtains required parameters to create details and evaluate links $type_instrument = evalcomix_tasks::get_type_task($cmid); $task = evalcomix_tasks::fetch(array('instanceid' => $cmid)); $tool = get_evalcomix_modality_tool($courseid, $task->id, $mode); //$url_instrument = webservice_evalcomix_client::get_ws_assessment_form($tool->idtool, $courseid, $type_instrument, $cmid, $userid, $assessorid, $mode, MOODLE_NAME); $url_instrument = 'assessment_form.php?id=' . $courseid . '&a=' . $cmid . '&t=' . $tool->idtool . '&s=' . $userid . '&mode=assess'; $task = evalcomix_tasks::fetch(array('instanceid' => $cmid)); //Evaluate, Delete and Details buttons $evaluate = '<input type="image" value="' . get_string('evaluate', 'block_evalcomix') . '" title="' . get_string('evaluate', 'block_evalcomix') . '" style="width:16px;" src="../images/evaluar.png" onclick="javascript:url(\'' . $url_instrument . '\',\'' . $userid . '\',\'' . $cmid . '\',\'' . $page . '\',\'' . $courseid . '\');"/>'; if ($assessmentgrade = evalcomix_assessments::fetch(array('taskid' => $task->id, 'assessorid' => $assessorid, 'studentid' => $userid))) { $evaluate = '<input type="image" value="' . get_string('evaluate', 'block_evalcomix') . '" title="' . get_string('evaluate', 'block_evalcomix') . '" style="width:16px;" src="../images/evaluar2.png" onclick="javascript:url(\'' . $url_instrument . '\',\'' . $userid . '\',\'' . $cmid . '\', \'' . $page . '\',\'' . $courseid . '\');"/>'; } if ($showdetails) { $details = '<input type="image" value="' . get_string('details', 'block_evalcomix') . '" style="width:16px" title=' . get_string('details', 'block_evalcomix') . ' src="../images/lupa.png" onclick="javascript:urlDetalles(\'' . $CFG->wwwroot . '/blocks/evalcomix/assessment/details.php?cid=' . $context->id . '&itemid=' . $task->id . '&userid=' . $userid . '&popup=1\');"/>'; } else { $details = ''; } //Show user�s works $title = get_string('studentwork1', 'block_evalcomix') . get_string('studentwork2', 'block_evalcomix') . $cmid; echo ' <input type="image" value="' . $title . '" style="background-color:transparent;width:13px" title="' . $title . '" src="../images/task.png" onclick="javascript:urlDetalles(\'' . $CFG->wwwroot . '/blocks/evalcomix/assessment/user_activity.php?id=' . $userid . '&course=' . $courseid . '&mod=' . $cmid . '\');"/>'; //If the $USER isn�t a teacher or admin evaluate if it should show Evaluate and Details buttons if ($mode == 'self' || $mode == 'peer') { //Obtains the groupmode of the activity //$groupmode = $report_evalcomix->get_groupmode($cmid);
/** * Calculates finalgrade for a student in a activity * @param int $params[cmid] course module id * @param int $params[userid] student id * @return the finalgrade or -1 if there is only peer-assessment but assessment period hasn't finished or -2 if there is not any assessment */ public static function get_finalgrade_user_task($params) { if (!isset($params['cmid']) || !isset($params['userid']) || !isset($params['courseid'])) { return null; } $cmid = $params['cmid']; $userid = $params['userid']; $courseid = $params['courseid']; //$coursecontext = get_context_instance(CONTEXT_COURSE, $courseid); $coursecontext = context_course::instance($courseid); $now = time(); global $CFG, $DB; include_once $CFG->dirroot . '/blocks/evalcomix/classes/evalcomix_tasks.php'; if (!($task = evalcomix_tasks::fetch(array('instanceid' => $cmid)))) { return null; } $result = null; $teacherweight = -1; $selfweight = -1; $peerweight = -1; $params_modes = array('taskid' => $task->id); $modes = evalcomix_modes::fetch_all($params_modes); if ($modes) { //Obtains activity´s weights foreach ($modes as $mode) { switch ($mode->modality) { case 'teacher': $teacherweight = $mode->weighing; break; case 'self': $selfweight = $mode->weighing; break; case 'peer': $peerweight = $mode->weighing; break; default: } } //echo $task->id . ': teacherweight-' . $teacherweight . ' selfweight-' .$selfweight . ' peerweight-' .$peerweight.'<br/>'; $params2 = array('taskid' => $task->id, 'studentid' => $userid); $assessments = evalcomix_assessments::fetch_all($params2); $inperiod = false; if ($assessments) { //$selfgrade = 0; $selfgrade = -1; $teachergrade = 0; $numteachers = 0; $peergrade = 0; $numpeers = 0; $grade = 0; foreach ($assessments as $assessment) { //If it is a self assessment if ($assessment->studentid == $assessment->assessorid && $selfweight != -1) { $selfgrade = $assessment->grade; } elseif (has_capability('moodle/grade:viewhidden', $coursecontext, $assessment->assessorid)) { if ($teacherweight != -1) { $teachergrade += $assessment->grade; $numteachers++; } } elseif ($assessment->studentid != $assessment->assessorid) { //If it is a peer assessment //Only gets grades when the assessment period in the task is finished if ($modeEI = evalcomix_modes::fetch(array('taskid' => $assessment->taskid, 'modality' => 'peer'))) { $modeEItime = evalcomix_modes_time::fetch(array('modeid' => $modeEI->id)); if ($modeEItime && $now > $modeEItime->timedue) { $peergrade += $assessment->grade; $numpeers++; } elseif ($now >= $modeEItime->timeavailable && $now <= $modeEItime->timedue) { $inperiod = true; } } } } //Calculates peergrade if ($numpeers > 0) { $peergrade = round($peergrade / $numpeers, 2); } //Calculates teachergrade if ($numteachers > 0) { $teachergrade = round($teachergrade / $numteachers, 2); } //Calcultes the total grade //if($teachergrade != 0 || $selfgrade != 0 || $peergrade != 0){ if ($numteachers > 0 || $numpeers > 0 || $selfgrade != -1) { if ($selfgrade == -1) { $selfgrade = 0; } $result = $selfgrade * ($selfweight / 100) + $teachergrade * ($teacherweight / 100) + $peergrade * ($peerweight / 100); } elseif ($inperiod == true) { //There is peer assessments but assessment period hasn't finished $result = -1; } else { $result = -2; } return $result; } else { return null; } } else { return -3; } }
require_once $CFG->dirroot . '/blocks/evalcomix/assessment/lib.php'; require_once $CFG->dirroot . '/blocks/evalcomix/classes/evalcomix_tasks.php'; require_once $CFG->dirroot . '/blocks/evalcomix/classes/evalcomix_modes.php'; $context = get_context_instance(CONTEXT_COURSE, $courseid); $report_evalcomix = new grade_report_evalcomix($courseid, null, $context); $users = $report_evalcomix->load_users(); $assessed_users = array(); if ($task = evalcomix_tasks::fetch(array('instanceid' => $cmid))) { if ($mode = evalcomix_modes::fetch(array('taskid' => $task->id, 'modality' => $modality))) { foreach ($users as $user) { if (!$assessorid) { $assessorid = $user->id; } //It obtains assignments for each task and user $params2 = array('taskid' => $task->id, 'studentid' => $user->id, 'assessorid' => $assessorid); $assessments = evalcomix_assessments::fetch_all($params2); if ($assessments) { $assessed_users[] = $user; } } } } if (empty($assessed_users)) { $output = html_writer::start_tag('div', array('style' => 'font-style:italic')); $output .= get_string('nostudentselfassessed', 'block_evalcomix'); $output .= html_writer::end_tag('div'); } else { $num_users = 0; $output = html_writer::start_tag('table'); foreach ($assessed_users as $user) { $output .= html_writer::start_tag('tr');
if ($assessdelete) { $stringmode = 'peer'; if ($assessdelete->assessorid == $assessdelete->studentid) { $stringmode = 'self'; } $response = webservice_evalcomix_client::delete_ws_assessment($course->id, $module->name, $task->instanceid, $user->id, $assessdelete->assessorid, $stringmode, MOODLE_NAME); $assessdelete->delete(); $params = array('cmid' => $task->instanceid, 'userid' => $user->id, 'courseid' => $course->id); $finalgrade = evalcomix_grades::get_finalgrade_user_task($params); if ($finalgrade !== null) { if ($gradeObject = evalcomix_grades::fetch($params)) { $gradeObject->finalgrade = $finalgrade; $gradeObject->update(); } } else { if ($gradeObject = evalcomix_grades::fetch($params)) { $gradeObject->delete(); } } } } if (!($assessments = evalcomix_assessments::fetch_all(array('studentid' => $user->id, 'taskid' => $itemid)))) { // print_error('Wrong parameters'); } $selfassessment = null; $teacherassessments = array(); $peerassessments = array(); $totalpeergrade = 0; $num_peer_grades = 0; $totalteachergrade = 0; $num_teacher_grades = 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; }
function query($type, $id, $idCurso) { include_once '../../../../config.php'; switch ($type) { // 1.- Listado de tareas case 1: global $DB; include_once '../../classes/evalcomix_tasks.php'; $tasks = evalcomix_tasks::get_moodle_course_tasks($idCurso); return $tasks; /* return array( array('id'=> 1, 'nombre'=> 'tarea1'), array('id'=> 2, 'nombre'=>'tarea2'), array('id'=> 3, 'nombre'=>'tarea3'), array('id'=> 4, 'nombre'=>'tarea4') );*/ break; // 2.- Listado de grupos asociados a una tarea, el id correspondería a una tarea y // habría que seleccionar los grupos asociados a dicho id // 2.- Listado de grupos asociados a una tarea, el id correspondería a una tarea y // habría que seleccionar los grupos asociados a dicho id case 2: global $DB; $groups = $DB->get_records('groups', array('courseid' => $idCurso)); $array_groups = array(); foreach ($groups as $group) { $array_groups[] = array('id' => $group->id, 'nombre' => $group->name); } return $array_groups; /*return array( array('id'=> 1, 'nombre'=> 'grupo1'), array('id'=> 2, 'nombre'=>'grupo2'), array('id'=> 3, 'nombre'=>'grupo3'), array('id'=> 4, 'nombre'=>'grupo4') );*/ break; // 3.- Listado de modalidades disponibles // 3.- Listado de modalidades disponibles case 3: return array(array('id' => 1, 'nombre' => 'profesor'), array('id' => 2, 'nombre' => 'autoevaluacion'), array('id' => 3, 'nombre' => 'entre iguales')); break; // 4.- Listado de los alumnos asociados a una tarea // Llamada de ejemplo: Grafica perfil-tarea al seleccionar por alumno y tarea // Llamada de ejemplo: Grafica perfil-tarea al seleccionar por grupo y a elegir un grupo // 4.- Listado de los alumnos asociados a una tarea // Llamada de ejemplo: Grafica perfil-tarea al seleccionar por alumno y tarea // Llamada de ejemplo: Grafica perfil-tarea al seleccionar por grupo y a elegir un grupo case 4: $pos = strpos($id, ';'); if ($pos == false) { //Entra si no estamos en grupo global $DB, $CFG; include_once '../../classes/evalcomix_assessments.php'; $users = evalcomix_assessments::get_students_assessed($id); $array_students = array(); foreach ($users as $user) { $student = $DB->get_record('user', array('id' => $user)); $array_students[] = array('id' => $user, 'nombre' => $student->lastname . ', ' . $student->firstname); } return $array_students; /*return array( array('id'=> 1, 'nombre'=> 'alumnoTarea1'), array('id'=> 2, 'nombre'=>'alumnoTarea2'), array('id'=> 3, 'nombre'=>'alumnoTarea3'), array('id'=> 4, 'nombre'=>'alumnoTarea4'), array('id'=> 4, 'nombre'=>'alumnoTarea4') );*/ } else { //Entra si estamos en un grupo $idtarea = substr($id, 0, $pos); $idgrupo = substr($id, $pos + 1); if ($idgrupo == -2) { //Caso de sin grupo (Todos los alumnos, idCurso) /*return array( array('id'=> 1, 'nombre'=> 'alumnoTareaGrupo1'), array('id'=> 2, 'nombre'=>'alumnoTareaGrupo2'), array('id'=> 3, 'nombre'=>'alumnoTareaGrupo3'), array('id'=> 4, 'nombre'=>'alumnoTareaGrupo4'), array('id'=> 5, 'nombre'=>'alumnoTareaGrupo5'), array('id'=> 6, 'nombre'=>'alumnoTareaGrupo6'), array('id'=> 7, 'nombre'=>'alumnoTareaGrupo4') );*/ global $DB, $CFG; include_once '../../classes/evalcomix_assessments.php'; $users = evalcomix_assessments::get_students_assessed($idtarea); $array_students = array(); foreach ($users as $user) { $student = $DB->get_record('user', array('id' => $user)); $array_students[] = array('id' => $user, 'nombre' => $student->lastname . ', ' . $student->firstname); } return $array_students; } else { //Caso de un grupo (Alumnos de grupo idgrupo) $idtarea = substr($id, 0, $pos); $idgrupo = substr($id, $pos + 1); global $DB, $CFG; include_once '../../classes/evalcomix_assessments.php'; $users = evalcomix_assessments::get_students_assessed($idtarea); $groups_member = $DB->get_records('groups_members', array('groupid' => $idgrupo)); $members_ids = array(); //Vamos comprobando para cada miembro del grupo si ha sido evaluado en la actividad foreach ($groups_member as $member) { //$members_ids[] = $member->userid; if (in_array($member->userid, $users)) { $members_ids[] = $member->userid; } } //$array_intersection = array_intersect_assoc($users, $members_ids); $array_students = array(); //foreach($array_intersection as $student){ foreach ($members_ids as $student) { $user = $DB->get_record('user', array('id' => $student)); $array_students[] = array('id' => $user->id, 'nombre' => $user->lastname . ', ' . $user->firstname); } /*global $DB; $groups_member = $DB->get_records('groups_members', array('groupid' => $idgrupo)); $array_students = array(); foreach($groups_member as $student){ $user = $DB->get_record('user', array('id' => $student->userid)); $array_students[] = array('id' => $user->id, 'nombre' =>($user->lastname.', '.$user->firstname)); }*/ return $array_students; /*return array( array('id'=> 1, 'nombre'=> 'alumnoTareaGrupo1'), array('id'=> 2, 'nombre'=>'alumnoTareaGrupo2'), array('id'=> 3, 'nombre'=>'alumnoTareaGrupo3'), array('id'=> 4, 'nombre'=>'alumnoTareaGrupo4') );*/ } } break; default: return -1; break; } }
public function after_restore() { global $DB, $COURSE, $CFG; include_once $CFG->dirroot . '/blocks/evalcomix/configeval.php'; 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'; include_once $CFG->dirroot . '/blocks/evalcomix/classes/evalcomix_assessments.php'; include_once $CFG->dirroot . '/blocks/evalcomix/classes/webservice_evalcomix_client.php'; include_once $CFG->dirroot . '/blocks/evalcomix/classes/evalcomix_grades.php'; include_once $CFG->dirroot . '/blocks/evalcomix/classes/evalcomix_allowedusers.php'; $settings = $this->task->get_info()->root_settings; //$this->oldcontextid; busco en tabla mdl_context->instanceid es el courseid; con el courseid obtengo todos los cms antiguos y nuevos y voy copiando uno a uno //$this->basepath = $CFG->dataroot . '/temp/backup/' . $controller->get_tempdir(); //$blockid = $this->get_old_blockid(); //$xml = simplexml_load_file($this->get_basepath() . '/course/blocks/evalcomix_'. $blockid .'/evalcomix.xml'); $fullpath = $this->task->get_taskbasepath(); // We MUST have one fullpath here, else, error if (empty($fullpath)) { throw new restore_step_exception('restore_structure_step_undefined_fullpath'); } // Append the filename to the fullpath $fullpath = rtrim($fullpath, '/') . '/' . $this->filename; // And it MUST exist if (!file_exists($fullpath)) { // Shouldn't happen ever, but... throw new restore_step_exception('missing_moodle_backup_xml_file', $fullpath); } $xml = simplexml_load_file($fullpath); //echo $this->task->get_taskbasepath() . '/course/blocks/evalcomix_'. $blockid .'/evalcomix.xml'; $evxid_old = (int) $xml->evalcomix['id']; $viewmode_old = (string) $xml->evalcomix->viewmode; if (isset($xml->evalcomix->environment->courseid)) { $courseid_old = $xml->evalcomix->environment->courseid; } if (isset($xml->evalcomix->environment->moodlename)) { $moodlename_old = $xml->evalcomix->environment->moodlename; } include_once $CFG->dirroot . '/blocks/evalcomix/configeval.php'; //include_once($CFG->dirroot . '/backup/lib.php'); //$courseid_new = $this->plan->get_courseid(); $courseid_new = $this->get_courseid(); $moodlename_new = MOODLE_NAME; $block_evalcomix = $DB->get_record('block_evalcomix', array('courseid' => $courseid_new)); //$coursecontext = get_context_instance(CONTEXT_COURSE, $courseid_new); $coursecontext = context_course::instance($courseid_new); $tasksid = ''; if (isset($xml->evalcomix->tasks[0])) { $assessmentids = array(); foreach ($xml->evalcomix->tasks[0] as $task) { $task_id_old = (int) $task['id']; $task_instanceid_old = (int) $task->instanceid; $task_maxgrade_old = (string) $task->maxgrade; $task_weighing_old = (string) $task->weighing; $cm = $DB->get_record('block_evalcomix', array('courseid' => $courseid_new)); $cm_mapping = $this->get_mapping('course_module', $task_instanceid_old); $newcmid = $cm_mapping->newitemid; $visibletask = '1'; if (isset($task->visible)) { $visibletask = (string) $task->visible; } if (!($task_fetch = evalcomix_tasks::fetch(array('instanceid' => $newcmid)))) { $task_object = new evalcomix_tasks('', $newcmid, $task_maxgrade_old, $task_weighing_old, '', $visibletask); $newtaskid = $task_object->insert(); $tasksid .= $task_instanceid_old . '-' . $newcmid . ','; foreach ($task->modes[0] as $mode) { $mode_id_old = (int) $mode['id']; $mode_toolid_old = (string) $mode->toolid; $mode_modality_old = (string) $mode->modality; $mode_weighing_old = (string) $mode->weighing; $tool_mapping = $this->get_mapping('evalcomix_tool', $mode_toolid_old); if (!empty($tool_mapping) && ($newtoolid = $tool_mapping->newitemid)) { if (!($mode_object = evalcomix_modes::fetch(array('taskid' => $newtaskid, 'toolid' => $newtoolid, 'modality' => $mode_modality_old)))) { $mode_object = new evalcomix_modes('', $newtaskid, $newtoolid, $mode_modality_old, $mode_weighing_old); $newmodeid = $mode_object->insert(); if (isset($mode->mode_time['id'])) { $mode_time_id_old = (string) $mode->mode_time['id']; $mode_time_timeavailable_old = (string) $mode->mode_time->timeavailable; $mode_time_timedue_old = (string) $mode->mode_time->timedue; if (!evalcomix_modes_time::fetch(array('modeid' => $newmodeid))) { $mode_time_object = new evalcomix_modes_time('', $newmodeid, $mode_time_timeavailable_old, $mode_time_timedue_old); $mode_time_object->insert(); } } if (isset($mode->mode_extra)) { $mode_extra_id_old = (string) $mode->mode_extra['id']; $mode_extra_timeavailable_old = (string) $mode->mode_extra->anonymous; $mode_extra_visible = $mode->mode_extra->visible; $mode_extra_whoassesses = $mode->mode_extra->whoassesses; if (!($mode_extra_object = evalcomix_modes_extra::fetch(array('modeid' => $newmodeid)))) { $mode_extra_object = new evalcomix_modes_extra('', $newmodeid, $mode_extra_timeavailable_old, $mode_extra_visible, $mode_extra_whoassesses); $mode_extra_object->insert(); } } } } } } if ($settings['users'] == 1) { foreach ($task->assessments[0] as $assessment) { $assessment_id_old = (string) $assessment['id']; $assessment_assessorid_old = (string) $assessment->assessorid; $assessment_studentid_old = (string) $assessment->studentid; $assessment_grade_old = (string) $assessment->grade; $assessor_user = $this->get_mapping('user', $assessment_assessorid_old); $student_user = $this->get_mapping('user', $assessment_studentid_old); if (!isset($assessor_user->newitemid) || !isset($student_user->newitemid)) { continue; } if (!($assessment_object = evalcomix_assessments::fetch(array('taskid' => $newtaskid, 'assessorid' => $assessor_user->newitemid, 'studentid' => $student_user->newitemid)))) { $assessment_object = new evalcomix_assessments('', $newtaskid, $assessor_user->newitemid, $student_user->newitemid, $assessment_grade_old); $assessment_object->insert(); } //$modulename = get_module_type ($courseid_new, $newcmid); $modulename = evalcomix_tasks::get_type_task($newcmid); $mode = ''; if ($student_user->newitemid == $assessor_user->newitemid) { $mode = 'self'; } elseif (has_capability('moodle/grade:viewhidden', $coursecontext, $assessor_user->newitemid)) { $mode = 'teacher'; } else { $mode = 'peer'; } //$courseid_old, $modulename, $task_instanceid_old, $assessment_studentid_old, $assessment_assessorid_old, $mode, $moodlename_old $str = $courseid_old . '_' . $modulename . '_' . $task_instanceid_old . '_' . $assessment_studentid_old . '_' . $assessment_assessorid_old . '_' . $mode . '_' . $moodlename_old; $assessmentid_old = md5($str); $str = $courseid_new . '_' . $modulename . '_' . $newcmid . '_' . $student_user->newitemid . '_' . $assessor_user->newitemid . '_' . $mode . '_' . $moodlename_new; //echo $str . ' -- '; $assessmentid_new = md5($str); $object = new stdClass(); $object->oldid = $assessmentid_old; $object->newid = $assessmentid_new; $assessmentids[] = $object; } } } } if ($tasksid != '') { $tasksid = substr($tasksid, 0, -1); } if ($settings['users'] == 1) { if (isset($xml->evalcomix->grades[0])) { foreach ($xml->evalcomix->grades[0] as $grade) { $cm_mapping = $this->get_mapping('course_module', $grade->cmid); $newcmid = $cm_mapping->newitemid; $student = $this->get_mapping('user', (int) $grade->userid); if (!isset($student->newitemid)) { continue; } $params = array('finalgrade' => (double) $grade->finalgrade, 'courseid' => $courseid_new, 'cmid' => $newcmid, 'userid' => $student->newitemid); if (!($grade_object = evalcomix_grades::fetch(array('courseid' => $courseid_new, 'cmid' => $newcmid, 'userid' => $student->newitemid)))) { $grade_object = new evalcomix_grades($params); $newgradeid = $grade_object->insert(); } } } if (isset($xml->evalcomix->allowedusers[0])) { foreach ($xml->evalcomix->allowedusers[0] as $users) { $cm_mapping = $this->get_mapping('course_module', $users->cmid); $newcmid = $cm_mapping->newitemid; $assessor = $this->get_mapping('user', (int) $users->assessorid); $student = $this->get_mapping('user', (int) $users->studentid); if (!isset($student->newitemid) || !isset($assessor->newitemid)) { continue; } $params = array('assessorid' => (int) $assessor->newitemid, 'studentid' => $student->newitemid, 'cmid' => $newcmid); if (!($allowedusers_object = evalcomix_allowedusers::fetch($params))) { $allowedusers_object = new evalcomix_allowedusers($params); $newid = $allowedusers_object->insert(); } } } } if (isset($xml->evalcomix->tools[0])) { $hashtools = array(); foreach ($xml->evalcomix->tools[0] as $tool) { if ((string) $tool->type == 'tmp') { continue; } $idtoolold = (string) $tool->idtool; $tool_mapping = $this->get_mapping('evalcomix_tool', (string) $tool['id']); $toolnew = evalcomix_tool::fetch(array('id' => $tool_mapping->newitemid)); $idtoolnew = $toolnew->idtool; $object = new stdClass(); $object->oldid = $idtoolold; $object->newid = $idtoolnew; $hashtools[] = $object; } } if (isset($hashtools) && isset($assessmentids)) { $result = webservice_evalcomix_client::duplicate_course($assessmentids, $hashtools); } //$newtools = webservice_evalcomix_client::get_ws_list_tool($courseid_new, $moodlename_new); }
function query_grafica($tipo_grafico, $tipo_opcion_radiobutton, $id_tarea, $id_alumnos, $id_grupo, $id_alumno, $id_modalidad, $idCurso) { require_once '../../../../config.php'; global $CFG; switch ($tipo_grafico) { case 1: switch ($tipo_opcion_radiobutton) { case 1: // perfil-tarea, alumno include_once $CFG->dirroot . '/blocks/evalcomix/classes/evalcomix_assessments.php'; include_once $CFG->dirroot . '/blocks/evalcomix/classes/evalcomix_tasks.php'; include_once $CFG->dirroot . '/blocks/evalcomix/classes/calculator_average.php'; $assessments = evalcomix_assessments::get_assessments_by_modality($id_tarea, $id_alumno); if ($assessments) { //$teachergrade = evalcomix_assessments::calculate_gradearray($assessments->teacherassessments); $teachergrades = evalcomix_assessments::calculate_grades($assessments->teacherassessments); $peergrades = evalcomix_assessments::calculate_grades($assessments->peerassessments); $array_teacher = array(get_string('teachermod', 'block_evalcomix')); if ($teachergrades) { foreach ($teachergrades as $teachergrade) { $array_teacher[] = (int) $teachergrade; } } $array_peer = array(get_string('peermod', 'block_evalcomix')); if ($peergrades) { foreach ($peergrades as $peergrade) { $array_peer[] = (int) $peergrade; } } $selfassessment = $assessments->selfassessment; $array_self = array(get_string('selfmod', 'block_evalcomix')); if ($selfassessment) { $array_self[] = (int) $selfassessment->grade; } return array('tituloGrafico' => array(get_string('profile_task_by_student', 'block_evalcomix')), 'min' => 0, 'max' => 100, 'datos' => array($array_teacher, $array_self, $array_peer)); } else { return array('tituloGrafico' => array(get_string('profile_task_by_student', 'block_evalcomix')), 'min' => 0, 'max' => 100, 'datos' => array(array(get_string('no_datas', 'block_evalcomix'), 0))); } /*return array('tituloGrafico'=> 'Gráfica tarea por alumno', 'min'=> 0, 'max'=> 100, 'datos' => array( array('profesor', 72.5), array('autoevaluacion', 70), array('entre iguales', 66.6), ) );*/ break; case 2: // perfil-tarea, grupo $id_students = explode(',', $id_alumnos); include_once $CFG->dirroot . '/blocks/evalcomix/classes/evalcomix_assessments.php'; include_once $CFG->dirroot . '/blocks/evalcomix/classes/calculator_average.php'; if ($id_students != $id_alumnos) { $t_grades[0] = get_string('teachermod', 'block_evalcomix'); $p_grades[0] = get_string('peermod', 'block_evalcomix'); $s_grades[0] = get_string('selfmod', 'block_evalcomix'); foreach ($id_students as $id_student) { if ($id_student == '-1') { continue; } $assessments = evalcomix_assessments::get_assessments_by_modality($id_tarea, (int) $id_student); if ($assessments) { if (!empty($assessments->teacherassessments)) { $tgrade = evalcomix_assessments::calculate_gradearray($assessments->teacherassessments); array_push($t_grades, $tgrade); } if (!empty($assessments->peerassessments)) { $pgrade = evalcomix_assessments::calculate_gradearray($assessments->peerassessments); array_push($p_grades, $pgrade); } if ($assessments->selfassessment) { $selfassessment = $assessments->selfassessment; $sgrade = (int) $selfassessment->grade; array_push($s_grades, $sgrade); } } } /*if(!isset($t_grades[1])){ array_push($t_grades, 0); } if(!isset($p_grades[1])){ array_push($p_grades, 0); } if(!isset($s_grades[1])){ array_push($s_grades, 0); }*/ return array('tituloGrafico' => array(get_string('profile_task_by_group', 'block_evalcomix')), 'min' => 0, 'max' => 100, 'datos' => array($t_grades, $s_grades, $p_grades)); /* PRUEBAS return array('tituloGrafico'=> array(get_string('profile_task_by_group', 'block_evalcomix')), 'min'=> 0, 'max'=> 100, 'datos' => array( array("Evaluación del Profesor",100,75,50,25), array("Autoevaluación",0), array("Evaluación entre Iguales",0), ) );*/ /*return array('tituloGrafico'=> 'Perfil tarea por grupo', 'min'=> 0, 'max'=> 100, 'datos' => array( array('profesor', 67, 85, 99, 100), array('autoevaluacion', 87, 70, 67, 100), array('entre iguales', 45, 70, 80, 100), ) );*/ } else { return array('tituloGrafico' => array(get_string('profile_task_by_group', 'block_evalcomix')), 'min' => 0, 'max' => 100, 'datos' => array(array(get_string('no_datas', 'block_evalcomix'), 0))); } /* DATOS DE ITELLIGENT return array('tituloGrafico'=> 'Perfil tarea por grupo', 'min'=> 0, 'max'=> 100, 'datos' => array( array('profesor', 67, 85, 99), array('autoevaluacion', 87, 70, 67), array('entre iguales', 45, 70, 80), ) ); */ break; case 3: // perfil-tarea, clase include_once $CFG->dirroot . '/blocks/evalcomix/classes/evalcomix_assessments.php'; include_once $CFG->dirroot . '/blocks/evalcomix/classes/calculator_average.php'; $students = evalcomix_assessments::get_students_assessed($id_tarea); if ($students) { $t_grades[0] = get_string('teachermod', 'block_evalcomix'); $p_grades[0] = get_string('peermod', 'block_evalcomix'); $s_grades[0] = get_string('selfmod', 'block_evalcomix'); foreach ($students as $student) { $assessments = evalcomix_assessments::get_assessments_by_modality($id_tarea, $student); if (!empty($assessments->teacherassessments)) { $tgrade = evalcomix_assessments::calculate_gradearray($assessments->teacherassessments); array_push($t_grades, $tgrade); } if (!empty($assessments->peerassessments)) { $pgrade = evalcomix_assessments::calculate_gradearray($assessments->peerassessments); array_push($p_grades, $pgrade); } if ($assessments->selfassessment) { $selfassessment = $assessments->selfassessment; $sgrade = (int) $selfassessment->grade; array_push($s_grades, $sgrade); } } /*if(!isset($t_grades[1])){ array_push($t_grades, 0); } if(!isset($p_grades[1])){ array_push($p_grades, 0); } if(!isset($s_grades[1])){ array_push($s_grades, 0); }*/ return array('tituloGrafico' => array(get_string('profile_task_by_course', 'block_evalcomix')), 'min' => 0, 'max' => 100, 'datos' => array($t_grades, $s_grades, $p_grades)); /*return array('tituloGrafico'=> 'Perfil tarea por clase', 'min'=> 0, 'max'=> 100, 'datos' => array( array('profesor', 67, 85, 99), array('autoevaluacion', 87, 70, 67), array('entre iguales', 45, 70, 80), ) ); */ } else { return array('tituloGrafico' => array(get_string('profile_task_by_course', 'block_evalcomix')), 'min' => 0, 'max' => 100, 'datos' => array(array(get_string('no_datas', 'block_evalcomix'), 0))); } break; } break; case 2: switch ($tipo_opcion_radiobutton) { case 1: // perfil-alumnado, entre profesores global $DB; include_once $CFG->dirroot . '/blocks/evalcomix/classes/evalcomix_assessments.php'; $assessments = evalcomix_assessments::get_assessments_by_modality($id_tarea, $id_alumno); $teachergrades = array(); if (!empty($assessments->teacherassessments)) { foreach ($assessments->teacherassessments as $tassessment) { $teacher = $DB->get_record('user', array('id' => $tassessment->assessorid)); $teacher_label = $teacher->lastname . ', ' . $teacher->firstname; $item = array($teacher_label, $tassessment->grade); array_push($teachergrades, $item); } return array('tituloGrafico' => array(get_string('profile_student_by_teacher', 'block_evalcomix')), 'min' => 0, 'max' => 100, 'datos' => $teachergrades); } else { return array('tituloGrafico' => array(get_string('profile_student_by_teacher', 'block_evalcomix')), 'min' => 0, 'max' => 100, 'datos' => array(array(get_string('no_datas', 'block_evalcomix'), 0))); } /*return array('tituloGrafico'=> 'Perfil alumnado entre profesores', 'min'=> 0, 'max'=> 100, 'datos' => array( array('profesor1', 67), array('profesor2', 87), array('profesor3', 45), array('profesor4', 70), array('profesor5', 80) ) );*/ break; case 2: // perfil-alumnado, entre iguales global $DB; include_once $CFG->dirroot . '/blocks/evalcomix/classes/evalcomix_assessments.php'; $assessments = evalcomix_assessments::get_assessments_by_modality($id_tarea, $id_alumno); $peergrades = array(); if (!empty($assessments->peerassessments)) { foreach ($assessments->peerassessments as $passessment) { $peer = $DB->get_record('user', array('id' => $passessment->assessorid)); $peer_label = $peer->lastname . ', ' . $peer->firstname; $item = array($peer_label, (int) $passessment->grade); array_push($peergrades, $item); } return array('tituloGrafico' => array(get_string('profile_student_by_group', 'block_evalcomix')), 'min' => 0, 'max' => 100, 'datos' => $peergrades); } else { return array('tituloGrafico' => array(get_string('profile_student_by_group', 'block_evalcomix')), 'min' => 0, 'max' => 100, 'datos' => array(array(get_string('no_datas', 'block_evalcomix'), 0))); } /*return array('tituloGrafico'=> 'Perfil alumnado entre iguales', 'min'=> 0, 'max'=> 100, 'datos' => array( array('alumno1', 67), array('alumno2', 87), array('alumno3', 45), array('alumno4', 70), array('alumno5', 80) ) );*/ break; } break; /*case 3: {switch ($tipo_opcion_radiobutton) { case 1: // perfil-atributos, alumno return array('tituloGrafico'=> 'Perfil atributos por alumno', 'min'=> 0, 'max'=> 100, 'datos' => array( array('atributo1', 67), array('atributo2', 87), array('atributo3', 45), array('atributo4', 45) ) ); break; case 2: // perfil-atributos, grupo return array('tituloGrafico'=> 'Perfil atributos por grupo', 'min'=> 0, 'max'=> 100, 'datos' => array( array('atributo1', 67, 23, 43), array('atributo2', 87, 45, 76), array('atributo3', 45, 34, 93), array('atributo3', 45, 34, 93), array('atributo3', 45, 34, 93), array('atributo3', 45, 34, 93), array('atributo3', 45, 34, 93), array('atributo3', 45, 34, 93), array('atributo3', 45, 34, 93), array('atributo3', 45, 34, 93), array('atributo3', 45, 34, 93), array('atributo3', 45, 34, 93), array('atributo3', 45, 34, 93), array('atributo3', 45, 34, 93), array('atributo3', 45, 34, 93), array('atributo3', 45, 34, 93), array('atributo3', 45, 34, 93), array('atributo3', 45, 34, 93), array('atributo3', 45, 34, 93), array('atributo3', 45, 34, 93), array('atributo3', 45, 34, 93), array('atributo3', 45, 34, 93), array('atributo3', 45, 34, 93), array('atributo3', 45, 34, 93), array('atributo3', 45, 34, 93), array('atributo3', 45, 34, 93), array('atributo3', 45, 34, 93), array('atributo3', 45, 34, 93), array('atributo3', 45, 34, 93), array('atributo3', 45, 34, 93), array('atributo3', 45, 34, 93), array('atributo3', 45, 34, 93), array('atributo3', 45, 34, 93), array('atributo3', 45, 34, 93), array('atributo3', 45, 34, 93), array('atributo3', 45, 34, 93), array('atributo3', 45, 34, 93), array('atributo3', 45, 34, 93), array('atributo4', 45, 54, 86) ) ); break; case 3: // perfil-atributos, clase return array('tituloGrafico'=> 'Perfil atributos por clase', 'min'=> 0, 'max'=> 100, 'datos' => array( array('atributo1', 67, 23, 43), array('atributo2', 87, 45, 76), array('atributo3', 45, 34, 93), array('atributo4', 45, 54, 86) ) ); break; }} break;*/ } }