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; } }
$this->assertIsA($result, 'stdClass'); unset($idtask, $iduser, $result); } /** * Get assessments by modality fail */ public function test_get_assessments_by_modality_fail()
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;*/ } }