From 86ad52b0796a7372b014c883b6ffc0ea7595acf9 Mon Sep 17 00:00:00 2001 From: Wilmer Date: Thu, 23 Mar 2017 14:15:18 -0400 Subject: [PATCH] =?UTF-8?q?gran=20cambio=20en=20donde=20se=20amplia=20el?= =?UTF-8?q?=20uso=20del=20Pida=20a=20trav=C3=A9s=20de=20una=20collecci?= =?UTF-8?q?=C3=B3n=20de=20formularios?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../views/planificacionseccion/new.html.twig | 16 +- app/Resources/views/solicitudes/pida.html.twig | 117 ++++++++++++-- src/AppBundle/Controller/AdscripcionController.php | 56 ++++--- src/AppBundle/Entity/AdscripcionPida.php | 89 +++-------- src/AppBundle/Entity/AdscripcionPida.php~ | 46 +++--- src/AppBundle/Entity/PidaTareaEspecifico.php | 171 +++++++++++++++++++++ src/AppBundle/Form/PidaTareaEspecificoType.php | 66 ++++++++ src/AppBundle/Form/PidaType.php | 40 +---- 8 files changed, 443 insertions(+), 158 deletions(-) create mode 100644 src/AppBundle/Entity/PidaTareaEspecifico.php create mode 100644 src/AppBundle/Form/PidaTareaEspecificoType.php diff --git a/app/Resources/views/planificacionseccion/new.html.twig b/app/Resources/views/planificacionseccion/new.html.twig index 8938716..e000354 100644 --- a/app/Resources/views/planificacionseccion/new.html.twig +++ b/app/Resources/views/planificacionseccion/new.html.twig @@ -9,19 +9,19 @@ {{ form_row(form.idtemaUc) }} - + - + - + @@ -46,7 +46,7 @@ var $addEstrategiaLink = $('Añadir estrategias'); var $addEvaluacionLink = $('Añadir Evaluaciones'); var $RemoveContenidoLink = $('Quitar Conceptos'); - + var $newLinkLiContenido = $('
  • ').append($addContenidoLink); var $newLinkLiEspecifico = $('
  • ').append($addEspecificoLink); var $newLinkLiEstrategia = $('
  • ').append($addEstrategiaLink); diff --git a/app/Resources/views/solicitudes/pida.html.twig b/app/Resources/views/solicitudes/pida.html.twig index bde4d41..acfc8ed 100644 --- a/app/Resources/views/solicitudes/pida.html.twig +++ b/app/Resources/views/solicitudes/pida.html.twig @@ -13,6 +13,12 @@ .container{ margin-bottom: 0; } + + .account-container{ + width:100%; + margin-left: 50px; + } + {% endblock %} @@ -29,23 +35,60 @@ -
    -
    -

    PIDA

    - {% form_theme form 'bootstrap_3_layout.html.twig' %} - {{ form_start(form) }} - {{ form_widget(form) }} +
    +
    + -
      +
    + + + {{ form_end(form) }} +
    - {{ form_end(form) }} +
    - -
    + {% if pida %} +
    + +
    + {% endif %} + + {% endblock %} @@ -58,5 +101,57 @@ {% endblock %} diff --git a/src/AppBundle/Controller/AdscripcionController.php b/src/AppBundle/Controller/AdscripcionController.php index bd8df25..f3d39aa 100644 --- a/src/AppBundle/Controller/AdscripcionController.php +++ b/src/AppBundle/Controller/AdscripcionController.php @@ -9,6 +9,7 @@ namespace AppBundle\Controller; use AppBundle\Entity\DocumentosVerificados; +use AppBundle\Entity\PidaTareaEspecifico; use Symfony\Component\Form\FormError; use Symfony\Component\HttpFoundation\File\UploadedFile; use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route; @@ -448,9 +449,19 @@ class AdscripcionController extends Controller if(!$adscripcion) return $this->redirect($this->generateUrl('solicitud_adscripcion')); //si ya se tiene PIDA - if($this->getDoctrine()->getRepository('AppBundle:AdscripcionPida')->findOneByIdRolInstitucion($this->getUser()->getIdRolInstitucion()->getId())){ - return $this->redirect($this->generateUrl('cea_index')); - } + $pid = $this->getDoctrine()->getRepository('AppBundle:AdscripcionPida')->findByIdRolInstitucion(array( + 'idRolInstitucion' => $this->getUser()->getIdRolInstitucion()->getId() + )); + + $serv = ""; + + if($pid){ + $serv = $this->getDoctrine()->getRepository('AppBundle:DocenteServicio')-> + findOneBy(array( + 'idRolInstitucion' => $this->getUser()->getIdRolInstitucion()->getId(), + 'idServicioCe' => 4 + )); + } $pida = new AdscripcionPida(); $form = $this->createForm('AppBundle\Form\PidaType', $pida); @@ -458,33 +469,42 @@ class AdscripcionController extends Controller if ($form->isSubmitted() && $form->isValid()) { - + $em = $this->getDoctrine()->getManager(); //Crear la solicitud de Servicio - $servicios = new DocenteServicio(); + if(!$pid) { + $servicios = new DocenteServicio(); - $servicios->setIdRolInstitucion($this->getUser()->getIdRolInstitucion()); - $servicios->setIdServicioCe($this->getDoctrine()->getRepository('AppBundle:ServiciosCe')->findOneById(4)); - $servicios->setIdEstatus($this->getDoctrine()->getRepository('AppBundle:estatus')->findOneById(2)); + $servicios->setIdRolInstitucion($this->getUser()->getIdRolInstitucion()); + $servicios->setIdServicioCe($this->getDoctrine()->getRepository('AppBundle:ServiciosCe')->findOneById(4)); + $servicios->setIdEstatus($this->getDoctrine()->getRepository('AppBundle:estatus')->findOneById(2)); + $em->persist($servicios); + } $pida->setIdRolInstitucion($this->getUser()->getIdRolInstitucion()); $pida->setIdEstatus($this->getDoctrine()->getRepository('AppBundle:Estatus')->findOneById(2)); + foreach($pida->getPidaTareaEspecifico() as $especifico){ + //var_dump($especifico); exit; + $especifico->setAdscripcionPidaId($pida); + } + - $em = $this->getDoctrine()->getManager(); + $em->persist($pida); - $em->persist($servicios); + $em->flush(); - - return $this->redirectToRoute('cea_index'); + + return $this->redirectToRoute('solicitud_pida'); } - - - return $this->render( - 'solicitudes/pida.html.twig', - array('form' => $form->createView()) - ); + + + return $this->render('solicitudes/pida.html.twig', array( + 'form' => $form->createView(), + 'pida' => $pid, + 'servicio' => $serv + )); } diff --git a/src/AppBundle/Entity/AdscripcionPida.php b/src/AppBundle/Entity/AdscripcionPida.php index 4e05428..41553cb 100644 --- a/src/AppBundle/Entity/AdscripcionPida.php +++ b/src/AppBundle/Entity/AdscripcionPida.php @@ -3,13 +3,14 @@ namespace AppBundle\Entity; +use Doctrine\Common\Collections\ArrayCollection; use Doctrine\ORM\Mapping as ORM; /** * AdscripcionPida * - * @ORM\Table(name="solicitud_pida", uniqueConstraints={@ORM\UniqueConstraint(name="pida_id_rol_institucion_key", columns={"id_rol_institucion"})}) + * @ORM\Table(name="solicitud_pida", uniqueConstraints={@ORM\UniqueConstraint(name="pida_id_rol_institucion_key", columns={"id_rol_institucion", "id_plan_historico_nacional_estrategico", "id_actividad_docente"})}) * @ORM\Entity * @ORM\HasLifecycleCallbacks() */ @@ -25,14 +26,13 @@ class AdscripcionPida * @ORM\SequenceGenerator(sequenceName="adscripcion_id_seq", allocationSize=1, initialValue=1) */ private $id; - - + + /** - * @var string - * - * @ORM\Column(name="objetivo_especifico", type="text", nullable=false, options={"comment" = "objetivo especifico a desarrollar dentro enmarcado en el plan patria"}) + * @ORM\OneToMany(targetEntity="AppBundle\Entity\PidaTareaEspecifico", mappedBy="adscripcionPidaId",cascade={"all"}) + * @var \Doctrine\Common\Collections\ArrayCollection */ - private $objetivoEspecifico; + private $pidaTareaEspecifico; @@ -70,15 +70,7 @@ class AdscripcionPida protected $idActividadDocente; - /** - * @var \AppBundle\Entity\PidaPlazo - * - * @ORM\ManyToOne(targetEntity="AppBundle\Entity\PidaPlazo") - * @ORM\JoinColumns({ - * @ORM\JoinColumn(name="id_pida_plazo", referencedColumnName="id", nullable=true) - * }) - */ - protected $idPidaPlazo; + @@ -98,15 +90,6 @@ class AdscripcionPida private $fecha_ultima_actualizacion; - /** - * @var \AppBundle\Entity\PidaEstatus - * - * @ORM\ManyToOne(targetEntity="AppBundle\Entity\PidaEstatus") - * @ORM\JoinColumns({ - * @ORM\JoinColumn(name="id_pida_estatus", referencedColumnName="id", nullable=true) - * }) - */ - protected $idPidaEstatus; @@ -267,72 +250,50 @@ class AdscripcionPida - /** - * Set objetivoEspecifico - * - * @param string $objetivoEspecifico - * @return AdscripcionPida - */ - public function setObjetivoEspecifico($objetivoEspecifico) - { - $this->objetivoEspecifico = $objetivoEspecifico; - return $this; - } /** - * Get objetivoEspecifico - * - * @return string + * Constructor */ - public function getObjetivoEspecifico() + public function __construct() { - return $this->objetivoEspecifico; + $this->pidaTareaEspecifico = new ArrayCollection(); } /** - * Set idPidaPlazo + * Add pidaTareaEspecifico * - * @param \AppBundle\Entity\PidaPlazo $idPidaPlazo + * @param \AppBundle\Entity\PidaTareaEspecifico $pidaTareaEspecifico * @return AdscripcionPida */ - public function setIdPidaPlazo(\AppBundle\Entity\PidaPlazo $idPidaPlazo = null) + public function addPidaTareaEspecifico(\AppBundle\Entity\PidaTareaEspecifico $pidaTareaEspecifico) { - $this->idPidaPlazo = $idPidaPlazo; + $this->pidaTareaEspecifico[] = $pidaTareaEspecifico; return $this; } /** - * Get idPidaPlazo + * Remove pidaTareaEspecifico * - * @return \AppBundle\Entity\PidaPlazo + * @param \AppBundle\Entity\PidaTareaEspecifico $pidaTareaEspecifico */ - public function getIdPidaPlazo() + public function removePidaTareaEspecifico(\AppBundle\Entity\PidaTareaEspecifico $pidaTareaEspecifico) { - return $this->idPidaPlazo; + $this->pidaTareaEspecifico->removeElement($pidaTareaEspecifico); } /** - * Set idPidaEstatus + * Get pidaTareaEspecifico * - * @param \AppBundle\Entity\PidaEstatus $idPidaEstatus - * @return AdscripcionPida + * @return \Doctrine\Common\Collections\Collection */ - public function setIdPidaEstatus(\AppBundle\Entity\PidaEstatus $idPidaEstatus) + public function getPidaTareaEspecifico() { - $this->idPidaEstatus = $idPidaEstatus; - - return $this; + return $this->pidaTareaEspecifico; } - /** - * Get idPidaEstatus - * - * @return \AppBundle\Entity\PidaEstatus - */ - public function getIdPidaEstatus() - { - return $this->idPidaEstatus; + public function __toString() { + return $this->getIdRolInstitucion()->getIdRol()->getIdPersona()->getPrimerNombre(); } } diff --git a/src/AppBundle/Entity/AdscripcionPida.php~ b/src/AppBundle/Entity/AdscripcionPida.php~ index edb24ff..96f79cb 100644 --- a/src/AppBundle/Entity/AdscripcionPida.php~ +++ b/src/AppBundle/Entity/AdscripcionPida.php~ @@ -25,14 +25,13 @@ class AdscripcionPida * @ORM\SequenceGenerator(sequenceName="adscripcion_id_seq", allocationSize=1, initialValue=1) */ private $id; - - + + /** - * @var string - * - * @ORM\Column(name="objetivo_especifico", type="text", nullable=false, options={"comment" = "objetivo especifico a desarrollar dentro enmarcado en el plan patria"}) + * @ORM\OneToMany(targetEntity="AppBundle\Entity\PidaTareaEspecifico", mappedBy="AdscripcionPidaId",cascade={"all"}) + * @var \Doctrine\Common\Collections\ArrayCollection */ - private $objetivoEspecifico; + private $pidaTareaEspecifico; @@ -103,7 +102,7 @@ class AdscripcionPida * * @ORM\ManyToOne(targetEntity="AppBundle\Entity\PidaEstatus") * @ORM\JoinColumns({ - * @ORM\JoinColumn(name="id_pida_estatus", referencedColumnName="id", nullable=false) + * @ORM\JoinColumn(name="id_pida_estatus", referencedColumnName="id", nullable=true) * }) */ protected $idPidaEstatus; @@ -267,49 +266,50 @@ class AdscripcionPida + /** - * Set objetivoEspecifico + * Set idPidaPlazo * - * @param string $objetivoEspecifico + * @param \AppBundle\Entity\PidaPlazo $idPidaPlazo * @return AdscripcionPida */ - public function setObjetivoEspecifico($objetivoEspecifico) + public function setIdPidaPlazo(\AppBundle\Entity\PidaPlazo $idPidaPlazo = null) { - $this->objetivoEspecifico = $objetivoEspecifico; + $this->idPidaPlazo = $idPidaPlazo; return $this; } /** - * Get objetivoEspecifico + * Get idPidaPlazo * - * @return string + * @return \AppBundle\Entity\PidaPlazo */ - public function getObjetivoEspecifico() + public function getIdPidaPlazo() { - return $this->objetivoEspecifico; + return $this->idPidaPlazo; } /** - * Set idPidaPlazo + * Set idPidaEstatus * - * @param \AppBundle\Entity\PidaPlazo $idPidaPlazo + * @param \AppBundle\Entity\PidaEstatus $idPidaEstatus * @return AdscripcionPida */ - public function setIdPidaPlazo(\AppBundle\Entity\PidaPlazo $idPidaPlazo = null) + public function setIdPidaEstatus(\AppBundle\Entity\PidaEstatus $idPidaEstatus) { - $this->idPidaPlazo = $idPidaPlazo; + $this->idPidaEstatus = $idPidaEstatus; return $this; } /** - * Get idPidaPlazo + * Get idPidaEstatus * - * @return \AppBundle\Entity\PidaPlazo + * @return \AppBundle\Entity\PidaEstatus */ - public function getIdPidaPlazo() + public function getIdPidaEstatus() { - return $this->idPidaPlazo; + return $this->idPidaEstatus; } } diff --git a/src/AppBundle/Entity/PidaTareaEspecifico.php b/src/AppBundle/Entity/PidaTareaEspecifico.php new file mode 100644 index 0000000..4318e26 --- /dev/null +++ b/src/AppBundle/Entity/PidaTareaEspecifico.php @@ -0,0 +1,171 @@ +id; + } + + /** + * Set adscripcionPidaId + * + * @param \AppBundle\Entity\AdscripcionPida $adscripcionPidaId + * @return PidaTareaEspecifico + */ + public function setAdscripcionPidaId(\AppBundle\Entity\AdscripcionPida $adscripcionPidaId) + { + $this->adscripcionPidaId = $adscripcionPidaId; + + return $this; + } + + /** + * Get adscripcionPidaId + * + * @return \AppBundle\Entity\AdscripcionPida + */ + public function getAdscripcionPidaId() + { + return $this->adscripcionPidaId; + } + + /** + * Set pidaTareaEspecifico + * + * @param string $pidaTareaEspecifico + * @return PidaTareaEspecifico + */ + public function setPidaTareaEspecifico($pidaTareaEspecifico) + { + $this->pidaTareaEspecifico = $pidaTareaEspecifico; + + return $this; + } + + /** + * Get pidaTareaEspecifico + * + * @return string + */ + public function getPidaTareaEspecifico() + { + return $this->pidaTareaEspecifico; + } + + /** + * Set idPidaPlazo + * + * @param \AppBundle\Entity\PidaPlazo $idPidaPlazo + * @return PidaTareaEspecifico + */ + public function setIdPidaPlazo(\AppBundle\Entity\PidaPlazo $idPidaPlazo = null) + { + $this->idPidaPlazo = $idPidaPlazo; + + return $this; + } + + /** + * Get idPidaPlazo + * + * @return \AppBundle\Entity\PidaPlazo + */ + public function getIdPidaPlazo() + { + return $this->idPidaPlazo; + } + + /** + * Set idPidaEstatus + * + * @param \AppBundle\Entity\PidaEstatus $idPidaEstatus + * @return PidaTareaEspecifico + */ + public function setIdPidaEstatus(\AppBundle\Entity\PidaEstatus $idPidaEstatus = null) + { + $this->idPidaEstatus = $idPidaEstatus; + + return $this; + } + + /** + * Get idPidaEstatus + * + * @return \AppBundle\Entity\PidaEstatus + */ + public function getIdPidaEstatus() + { + return $this->idPidaEstatus; + } + public function __toString() + { + return $this->getPidaTareaEspecifico(); + } +} diff --git a/src/AppBundle/Form/PidaTareaEspecificoType.php b/src/AppBundle/Form/PidaTareaEspecificoType.php new file mode 100644 index 0000000..cc0c7b2 --- /dev/null +++ b/src/AppBundle/Form/PidaTareaEspecificoType.php @@ -0,0 +1,66 @@ +add('pidaTareaEspecifico', \Symfony\Component\Form\Extension\Core\Type\TextType::class, array( + 'label' => 'Tarea: ' + )) + ->add('idPidaPlazo', EntityType::class, array( + 'class' => 'AppBundle:PidaPlazo', + 'label' => 'Plazo de la Tarea: ', + 'label_attr' => array('class' => 'radio-inline'), + + + + 'choice_label' => 'nombre', + + // used to render a select box, check boxes or radios + // 'multiple' => true, + 'expanded' => true, + )) + + + ->add('idPidaEstatus', EntityType::class, array( + 'class' => 'AppBundle:PidaEstatus', + 'label' => 'Estado Actual de la tarea:', + 'label_attr' => array('class' => 'radio-inline'), + 'query_builder' => function (EntityRepository $er) { + return $er->createQueryBuilder('u') + ->orderBy('u.id', 'ASC'); + }, + + // use the User.username property as the visible option string + 'choice_label' => 'nombre', + + // used to render a select box, check boxes or radios + // 'multiple' => true, + 'expanded' => true, + )) + ; + } + + /** + * @param OptionsResolver $resolver + */ + public function configureOptions(OptionsResolver $resolver) + { + $resolver->setDefaults(array( + 'data_class' => 'AppBundle\Entity\PidaTareaEspecifico' + )); + } +} diff --git a/src/AppBundle/Form/PidaType.php b/src/AppBundle/Form/PidaType.php index 9ecb392..a7ddaaf 100644 --- a/src/AppBundle/Form/PidaType.php +++ b/src/AppBundle/Form/PidaType.php @@ -11,12 +11,12 @@ namespace AppBundle\Form; use Doctrine\ORM\EntityRepository; use Symfony\Component\Form\AbstractType; +use Symfony\Component\Form\Extension\Core\Type\CollectionType; use Symfony\Component\Form\FormBuilderInterface; use Symfony\Component\OptionsResolver\OptionsResolver; use Symfony\Bridge\Doctrine\Form\Type\EntityType; -use Symfony\Component\Form\Extension\Core\Type\TextType; class PidaType extends AbstractType { @@ -48,42 +48,14 @@ class PidaType extends AbstractType 'choice_label' => 'getNombre' )) - - ->add('objetivo_especifico', TextType::class, array( - 'label' => 'Tarea' - )) - - ->add('idPidaPlazo', EntityType::class, array( - 'class' => 'AppBundle:PidaPlazo', - 'label' => 'Plazos de la Actividad: ', - 'label_attr' => array('class' => 'radio-inline'), - - - 'choice_label' => 'nombre', - - // used to render a select box, check boxes or radios - // 'multiple' => true, - 'expanded' => true, + ->add('pidaTareaEspecifico', CollectionType::class, array( + 'entry_type' => PidaTareaEspecificoType::class, + 'allow_add' => true, + 'label' => false )) + - - ->add('idPidaEstatus', EntityType::class, array( - 'class' => 'AppBundle:PidaEstatus', - 'label' => false, - 'label_attr' => array('class' => 'radio-inline'), - 'query_builder' => function (EntityRepository $er) { - return $er->createQueryBuilder('u') - ->orderBy('u.id', 'ASC'); - }, - - // use the User.username property as the visible option string - 'choice_label' => 'nombre', - - // used to render a select box, check boxes or radios - // 'multiple' => true, - 'expanded' => true, - )) -- 2.0.0