/** * @Template() * * http://localhost/Wind/web/app_dev.php/admin/BO/ajax/spot/1/addSite */ public function spotAddSiteAction($id = null, Request $request) { $em = $this->container->get('doctrine.orm.entity_manager'); if (isset($id) && $id != -1) { $spot = $em->find('LaPoizWindBundle:Spot', $id); if (!$spot) { return $this->container->get('templating')->renderResponse('LaPoizWindBundle:BackOffice:errorPage.html.twig', array('errMessage' => "No spot find !")); } $dataWindPrev = new DataWindPrev(); $dataWindPrev->setSpot($spot); $form = $this->createForm('dataWindPrevForm', $dataWindPrev)->add('add to spot', 'submit'); if ('POST' == $request->getMethod()) { //$form->submit($request); $form->handleRequest($request); //$form->submit($request->request->get($form->getName())); if ($form->isValid()) { // form submit $dataWindPrev = $form->getData(); // Uniquement url et spot. // Récupération du webSite grace à l'url $website = WebsiteManage::getWebSiteEntityFromURL($dataWindPrev->getUrl(), $em); if ($website != null) { // Check si le couple spot+website n'existe pas déjà ... $dataWindPrevInDB = $em->getRepository('LaPoizWindBundle:DataWindPrev')->getWithWebsiteAndSpot($website, $spot); if ($dataWindPrevInDB === null) { // OK il n'existe pas dans la BD -> on peut l'ajouter $dataWindPrev->setWebsite($website); if ($dataWindPrev->getWebsite()->getNom() == WebsiteGetData::windguruName) { $dataWindPrevWindGuruPro = clone $dataWindPrev; $dataWindPrevWindGuruPro->getWebsite()->removeDataWindPrev($dataWindPrevWindGuruPro); $windGuruProWebsite = $em->getRepository('LaPoizWindBundle:WebSite')->findByNom(WebsiteGetData::windguruProName)[0]; $dataWindPrevWindGuruPro->setWebsite($windGuruProWebsite); $this->saveDataWindPrev($spot, $dataWindPrevWindGuruPro, $em); } $this->saveDataWindPrev($spot, $dataWindPrev, $em); return $this->render('LaPoizWindBundle:BackOffice/Spot/Ajax:addSite.html.twig', array('spot' => $spot, 'form' => $form->createView(), 'create' => false)); } else { // Le couple spot et website existe dans la BD $form->get('url')->addError(new FormError('Ce site de prévision est déjà existant pour ce spot.')); } } else { // pas trouvé dfe website correspondant $form->get('url')->addError(new FormError('Site internet non géré par laPoiz.com')); } } } return $this->render('LaPoizWindBundle:BackOffice/Spot/Ajax:addSite.html.twig', array('spot' => $spot, 'form' => $form->createView(), 'create' => false)); } else { return $this->container->get('templating')->renderResponse('LaPoizWindBundle:BackOffice:errorPage.html.twig', array('errMessage' => "Miss id of spot... !")); } }
/** * @Template() * * http://localhost/Wind/web/app_dev.php/fo/ajax/spot/ask/create/step3/2/1 * * Etape 3: ajout des website */ public function step3Action($id = null, $idContact = null, Request $request) { $em = $this->container->get('doctrine.orm.entity_manager'); if (isset($id) && $id != -1) { $spot = $em->find('LaPoizWindBundle:Spot', $id); if (!$spot) { return $this->container->get('templating')->renderResponse('LaPoizWindBundle:FrontOffice:errorPage.html.twig', array('errMessage' => "No spot find !")); } $dataWindPrev = new DataWindPrev(); $dataWindPrev->setSpot($spot); $form = $this->createForm('dataWindPrevForm', $dataWindPrev)->add('Ajoute et test le site', 'submit'); if ($request->request->get("spot") == null) { if ('POST' == $request->getMethod()) { $form->handleRequest($request); if ($form->isValid()) { // form submit $dataWindPrev = $form->getData(); // Récupération du webSite grace à l'url $website = WebsiteManage::getWebSiteEntityFromURL($dataWindPrev->getUrl(), $em); if ($website != null) { $dataWindPrevInDB = $em->getRepository('LaPoizWindBundle:DataWindPrev')->getWithWebsiteAndSpot($website, $spot); if ($dataWindPrevInDB === null) { $dataWindPrev->setWebsite($website); // test si l'url est OK $webSite = WebsiteGetData::getWebSiteObject($dataWindPrev); if ($webSite->isDataWindPrevOK($dataWindPrev)) { // Il est possible de parser le site de cet URL if ($dataWindPrev->getWebsite()->getNom() == WebsiteGetData::windguruName) { $dataWindPrevWindGuruPro = clone $dataWindPrev; $dataWindPrevWindGuruPro->getWebsite()->removeDataWindPrev($dataWindPrevWindGuruPro); $windGuruProWebsite = $em->getRepository('LaPoizWindBundle:WebSite')->findByNom(WebsiteGetData::windguruProName)[0]; $dataWindPrevWindGuruPro->setWebsite($windGuruProWebsite); $this->saveDataWindPrev($spot, $dataWindPrevWindGuruPro, $em); } $this->saveDataWindPrev($spot, $dataWindPrev, $em); // clean the form and display it $dataWindPrev = new DataWindPrev(); $dataWindPrev->setSpot($spot); $form = $this->createForm('dataWindPrevForm', $dataWindPrev)->add('Ajoute et test le site', 'submit'); return $this->render('LaPoizWindBundle:FrontOffice:AskNewSpot/blockAddSite.html.twig', array('form' => $form->createView(), 'spot' => $spot, 'idContact' => $idContact)); } else { // URL n'est pas bonne return new JsonResponse(array('message' => $website->getNom() . ' est déjà spécifié pour ce spot'), 419); } } else { // URL n'est pas bonne return new JsonResponse(array('message' => 'Impossible de parser l URL'), 419); } } else { // URL n'est pas bonne return new JsonResponse(array('message' => 'Cette URL ne correspond à aucun site parser par LaPoizWind.'), 419); } } /*else { return new Response($request); }*/ } } return $this->render('LaPoizWindBundle:FrontOffice:AskNewSpot/step3.html.twig', array('spot' => $spot, 'form' => $form->createView(), 'idContact' => $idContact)); } else { return $this->container->get('templating')->renderResponse('LaPoizWindBundle:BackOffice:errorPage.html.twig', array('errMessage' => "Miss id of spot... !")); } }