/**
  * 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'));
         }
     }
 }