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