function registrarAsignacionAction($idPortafolio) { //Recibir datos $titulo = $this->getRequest()->request->get('form_titulo'); $tipo = $this->getRequest()->request->get('form_tipo'); $descripcion = $this->getRequest()->request->get('form_descripcion'); $fechaCierre = new \DateTime($this->getRequest()->request->get('form_fechaCierre')); $eleccion = $this->getRequest()->request->get('form_eleccion'); $tipoHerramienta = $this->getRequest()->request->get('form_herramienta'); $porcentaje = $this->getRequest()->request->get('form_porcentaje'); $modoPresentacion = (int) $this->getRequest()->request->get('form_presentacion'); $estatus = (int) $this->getRequest()->request->get('form_estatus'); $date = new \DateTime(); $date->setTimezone(new \DateTimeZone('America/Caracas')); $em = $this->getDoctrine()->getManager(); $portafolio = $em->getRepository('ProfesorBundle:Portafolio')->find($idPortafolio); //se chequea q no exista una asignacion con el mismo nombre dentro del portafolio $aux = $em->getRepository('ProfesorBundle:Asignacion')->findBy(array('portafolio' => $portafolio, 'titulo' => $titulo, 'tipo' => $tipo)); if (empty($aux)) { $asignacion = new Asignacion(); $asignacion->setTitulo($titulo); $asignacion->setTipo($tipo); $asignacion->setFechaInicio($date); $asignacion->setDescripcion($descripcion); $asignacion->setFechaCierre($fechaCierre); $asignacion->setPortafolio($portafolio); $asignacion->setPorcentaje($porcentaje); $asignacion->setEstatus($estatus); //$asignacion->setModoPresentacion($presentacion); if ($modoPresentacion == 0) { //si la opcion es individual $asignacion->setModoPresentacion($modoPresentacion); if ($tipo == 'coevaluacion') { $this->getRequest()->getSession()->getFlashBag()->add('warning', 'La Coevaluación es grupal'); return $this->redirect($this->generateUrl('asignaciones', array('idPortafolio' => $portafolio->getId()))); } } else { //si la opcion es grupal, se debe verificar q el portafolio es de tipo mixto if ($tipo == 'autoevaluacion') { $this->getRequest()->getSession()->getFlashBag()->add('warning', 'La Autoevaluación es individual'); return $this->redirect($this->generateUrl('asignaciones', array('idPortafolio' => $portafolio->getId()))); } if ($portafolio->getTipo() == 'mixto') { $asignacion->setModoPresentacion($modoPresentacion); } else { $this->getRequest()->getSession()->getFlashBag()->add('warning', 'El portafolio debe ser Mixto para las asignaciones grupales'); return $this->redirect($this->generateUrl('asignaciones', array('idPortafolio' => $portafolio->getId()))); } } if ($tipoHerramienta == 'lista') { $lista = $em->getRepository('ProfesorBundle:Lista')->find($eleccion); $asignacion->setLista($lista); } else { if ($tipoHerramienta == 'rubrica') { $rubrica = $em->getRepository('ProfesorBundle:Rubrica')->find($eleccion); $asignacion->setRubrica($rubrica); } } $em->persist($asignacion); $em->flush(); //se debe agregar de forma automatica un evento al calendario $evento = new Evento(); $evento->setTitulo($asignacion->getTitulo()); $evento->setDetalle($asignacion->getDescripcion()); $evento->setTipo('event-important'); $evento->setSeccion($portafolio->getSeccion()); $evento->setAsignacion($asignacion); if ($estatus == 1) { $evento->setVisible(1); } else { $evento->setVisible(0); } $auxInicio = strtotime($date->format('Y-m-d H:i')) * 1000; $auxFin = strtotime($fechaCierre->format('Y-m-d H:i')) * 1000; $evento->setInicio($auxInicio); $evento->setFin($auxFin); $em->persist($evento); $em->flush(); $this->getRequest()->getSession()->getFlashBag()->add('notice', 'Asignación creada'); return $this->redirect($this->generateUrl('asignaciones', array('idPortafolio' => $portafolio->getId()))); } else { $this->getRequest()->getSession()->getFlashBag()->add('warning', 'Ya existe la asignación'); return $this->redirect($this->generateUrl('asignaciones', array('idPortafolio' => $portafolio->getId()))); } }
function importarExamenAction($idPortafolio) { //Se inserta la fecha actual como fecha de creacion // $date = new \DateTime('NOW'); //$date = new \DateTime('NOW', new \DateTimeZone('America/Caracas')); $date = new \DateTime(); $date->setTimezone(new \DateTimeZone('America/Caracas')); //se reciben los datos $idExamen = (int) $this->getRequest()->request->get('form_examen'); $duracion = new \DateTime($this->getRequest()->request->get('form_duracion')); $fechaCierre = new \DateTime($this->getRequest()->request->get('form_fechaCierre')); $horaCierre = new \DateTime($this->getRequest()->request->get('form_horaCierre')); $tipo = (int) $this->getRequest()->request->get('form_tipo'); $porcentaje = $this->getRequest()->request->get('form_porcentaje'); $em = $this->getDoctrine()->getManager(); $examen = $em->getRepository('ProfesorBundle:Examen')->find($idExamen); $portafolio = $em->getRepository('ProfesorBundle:Portafolio')->find($idPortafolio); //$breadcrumbs = $this->get("white_october_breadcrumbs"); $breadcrumbs = $this->get("white_october_breadcrumbs"); // Add "homepage" route link to begin of breadcrumbs $breadcrumbs->prependRouteItem("Home", "inicio"); $breadcrumbs->addRouteItem("Portafolios", "portafolios"); $breadcrumbs->addItem($portafolio->getSeccion()->getMateria()->getNombre()); $breadcrumbs->addItem($portafolio->getSeccion()->getCodigo()); $breadcrumbs->addItem("Exámenes"); if ($this->validarExamen($examen) == 1) { //Se chequea si no ha sido importado el examen al portafolio $aux = $em->getRepository('ProfesorBundle:ExamenPortafolio')->findBy(array('examen' => $examen, 'portafolio' => $portafolio)); if (empty($aux)) { $registro = new ExamenPortafolio(); $registro->setFechaCierre($fechaCierre); $registro->setFechaInicio($date); $registro->setExamen($examen); $registro->setPortafolio($portafolio); $registro->setDuracion($duracion); $registro->setHoraCierre($horaCierre); $registro->setPorcentaje($porcentaje); if ($tipo == 0) { //si la opcion es individual $registro->setTipo($tipo); } else { //si la opcion es grupal, se debe verificar q el portafolio es de tipo mixto if ($portafolio->getTipo() == 'mixto') { $registro->setTipo($tipo); } else { $this->getRequest()->getSession()->getFlashBag()->add('warning', 'El portafolio debe ser Mixto para los examenes grupales'); return $this->render('ProfesorBundle:Default:viewExamenes.html.twig', array('portafolio' => $portafolio)); } } $em->persist($registro); $em->flush(); //se debe agregar de forma automatica un evento al calendario $evento = new Evento(); $evento->setTitulo($examen->getTitulo()); $evento->setDetalle($examen->getDescripcion()); $evento->setTipo('event-important'); $evento->setSeccion($portafolio->getSeccion()); $evento->setExamenPortafolio($registro); $evento->setVisible(1); $auxInicio = strtotime($date->format('Y-m-d H:i')) * 1000; $auxFin = strtotime($this->getRequest()->request->get('form_fechaCierre') . ' ' . $this->getRequest()->request->get('form_horaCierre')) * 1000; // var_dump('FechaCierre ' . $this->getRequest()->request->get('form_fechaCierre') . ' ' . $this->getRequest()->request->get('form_horaCierre')); //var_dump('FechaInicio ' . $date->format('Y-m-d H:i')); $evento->setInicio($auxInicio); $evento->setFin($auxFin); $em->persist($evento); $em->flush(); } else { $this->getRequest()->getSession()->getFlashBag()->add('warning', 'El examen ya existe en el portafolio'); return $this->render('ProfesorBundle:Default:viewExamenes.html.twig', array('portafolio' => $portafolio)); } $this->getRequest()->getSession()->getFlashBag()->add('notice', 'Examen importado'); return $this->render('ProfesorBundle:Default:viewExamenes.html.twig', array('portafolio' => $portafolio)); } $this->getRequest()->getSession()->getFlashBag()->add('warning', 'Faltan respuestas y/o preguntas al examen. Diríjase a Editar Examen'); return $this->render('ProfesorBundle:Default:viewExamenes.html.twig', array('portafolio' => $portafolio)); }