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())));
     }
 }