/** * Función privada encargada de compilar la práctica. * */ private function __compilarPractica() { exec('cd ' . $this->ruta_carpeta_id . "/arquetipo" . ' && mvn compile', $salida); $salida_string = implode(' ', $salida); if (strpos($salida_string, 'BUILD SUCCESS')) { // Compilación correcta // Creación carpeta intento $this->intento_realizado = $this->total_intentos_realizados + 1; mkdir($this->ruta_carpeta_id . $this->intento_realizado . "/", 0777, true); // Copiar practica subida a la carpeta del intento exec('xcopy ' . str_replace('/', '\\', $this->ruta_carpeta_id) . "\\arquetipo\\src\\main\\java" . ' ' . str_replace('/', '\\', $this->ruta_carpeta_id) . "\\" . $this->intento_realizado . ' /s /e'); // Copiar zip practica a la carpeta del intento exec('xcopy ' . $this->nombre_practica_zip . ' ' . str_replace('/', '\\', $this->ruta_carpeta_id) . "\\" . $this->intento_realizado); $this->__guardarIntento(); // Generar gráficas $graficas_controller = new GraficasController(); $graficas_controller->generarGraficasViolacionesErroresAlumno(); $graficas_controller->generarGraficaPrioridadesViolacionesIntentoRealizadoAlumno($this->id_intento); } else { $this->Flash->error(__('La práctica tiene errores de compilación')); } unlink('./' . $this->nombre_practica_zip); exec('cd ' . $this->ruta_carpeta_id . "/arquetipo/src/main" . ' && rmdir java /s /q && md java'); // borrar main/java exec('cd ' . $this->ruta_carpeta_id . "/arquetipo" . ' && rmdir target /s /q'); // borrar target }
/** * Función asociada a una vista, que se encarga de llamar * a los métodos de generación de gráficas en función de las * gráficas que hayan sido seleccionadas en el formulario de * la vista. * */ public function generarGraficas() { include '/../../vendor/libchart/libchart/classes/libchart.php'; if (!isset($_SESSION["lti_userId"])) { return $this->redirect(['controller' => 'Excepciones', 'action' => 'mostrarErrorAccesoLocal']); } $this->comprobarRolProfesor(); $graficas_controller = new GraficasController(); $alumnos_tabla = TableRegistry::get("Alumnos"); $alumnos = $alumnos_tabla->find('all'); $alumnos_intentos = array(); foreach ($alumnos as $alumno) { $intentos_tabla = TableRegistry::get("Intentos"); $intentos = $intentos_tabla->find('all')->where(['tarea_id' => $_SESSION["lti_idTarea"], 'alumno_id' => $alumno->id]); if (!$intentos->isEmpty()) { $alumnos_intentos[$alumno->id] = $alumno->nombre . " " . $alumno->apellidos; } } $this->set("alumnos_intentos", $alumnos_intentos); $_SESSION["grafica_medias_globales"] = false; $_SESSION["grafica_promedio_errores_violaciones"] = false; $_SESSION["grafica_media_errores"] = false; $_SESSION["grafica_alumnos_violaciones"] = false; $_SESSION["grafica_alumnos_intentos"] = false; $_SESSION["grafica_alumnos_test"] = false; $_SESSION["dropdown"] = false; if ($this->request->is('post')) { if ($this->request->data["MediasGlobales"]) { $_SESSION["grafica_medias_globales"] = true; $graficas_controller->generarGraficaMedias(); } if ($this->request->data["MediaViolacionesErrores"]) { $_SESSION["grafica_promedio_errores_violaciones"] = true; $graficas_controller->generarGraficaLineaPromedioErroresUnitariosViolaciones(); } if ($this->request->data["MediaErrores"]) { $_SESSION["grafica_media_errores"] = true; $graficas_controller->generarGraficaMediaErrores(); } if ($this->request->data["AlumnosViolaciones"]) { $_SESSION["grafica_alumnos_violaciones"] = true; $graficas_controller->generarGraficaVerticalAlumnosViolacionesCometidas(); } if ($this->request->data["AlumnosIntentos"]) { $_SESSION["grafica_alumnos_intentos"] = true; $graficas_controller->generarGraficaVerticalAlumnosIntentos(); } if ($this->request->data["AlumnosTest"]) { $_SESSION["grafica_alumnos_test"] = true; $graficas_controller->generarGraficaAlumnosTest(); } if ($this->request->data["field"]) { $_SESSION["dropdown"] = true; $id_alumno = $this->request->data["field"]; $this->set("id_alumno", $id_alumno); } if (!$_SESSION["grafica_medias_globales"] && !$_SESSION["grafica_promedio_errores_violaciones"] && !$_SESSION["grafica_alumnos_violaciones"] && !$_SESSION["grafica_alumnos_intentos"] && !$_SESSION["grafica_alumnos_test"] && !$_SESSION["dropdown"] && !$_SESSION["grafica_media_errores"]) { $this->Flash->error(__('Debes de seleccionar una de las opciones')); } } }