Esempio n. 1
0
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()
Esempio n. 3
0
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;*/
    }
}