From 88ccba0cf990e8b7ec6bca62e20a19653b987c7f Mon Sep 17 00:00:00 2001 From: Simon Vieille Date: Wed, 13 Jan 2016 22:55:59 +0100 Subject: [PATCH] cycle complet de jeu --- .../Controller/DefaultController.php | 45 ++++++++++++++----- .../Resources/views/Default/ok.html.twig | 1 + 2 files changed, 36 insertions(+), 10 deletions(-) create mode 100644 src/Mmi/Bundle/EnigmaBundle/Resources/views/Default/ok.html.twig diff --git a/src/Mmi/Bundle/EnigmaBundle/Controller/DefaultController.php b/src/Mmi/Bundle/EnigmaBundle/Controller/DefaultController.php index 06d21b3..1a008fd 100644 --- a/src/Mmi/Bundle/EnigmaBundle/Controller/DefaultController.php +++ b/src/Mmi/Bundle/EnigmaBundle/Controller/DefaultController.php @@ -12,6 +12,8 @@ use Symfony\Component\Form\Extension\Core\Type\PasswordType; use DateTime; use Symfony\Component\Form\Extension\Core\Type\TextareaType; use Symfony\Component\Validator\Constraints\NotBlank; +use Mmi\Bundle\EnigmaBundle\Entity\Timer; +use Mmi\Bundle\EnigmaBundle\Entity\Awnser; class DefaultController extends Controller { @@ -64,14 +66,15 @@ class DefaultController extends Controller } $timer = $this + ->getDoctrine() ->getRepository('MmiEnigmaBundle:Timer') ->findOneBy([ - 'team_id' => $this->getUser()->getId(), - 'enigma_id' => $enigma->getId(), + 'team' => $this->getUser(), + 'enigma' => $enigma, ]); if ($timer !== null) { - if (time() - $timer->getDate()->getTimestamp() < 60 * 30) { + if (time() - $timer->getDate()->getTimestamp() >= 60 * 30) { return $this->redirectToRoute('enigma_too_late'); } } else { @@ -79,23 +82,26 @@ class DefaultController extends Controller $timer ->setTeam($this->getUser()) ->setEnigma($enigma) - ->setDate(new DateTime('now')) - ->save(); + ->setDate(new DateTime('now')); + + $em = $this->getDoctrine()->getManager(); + $em->merge($timer); + $em->flush(); } $answer = $this ->getDoctrine() ->getRepository('MmiEnigmaBundle:Awnser') ->findOneBy([ - 'team_id' => $this->getUser()->getId(), - 'enigma_id' => $enigma->getId(), + 'team' => $this->getUser(), + 'enigma' => $enigma, ]); if ($answer !== null) { return $this->redirectToRoute('enigma_answered'); } - $form = $this->createFormBuilder() + $form = $this->createFormBuilder($answer = new Awnser()) ->add('content', TextareaType::class, [ 'required' => true, 'constraints' => [ @@ -109,16 +115,35 @@ class DefaultController extends Controller $form->handleRequest($request); if ($form->isValid()) { - $form->getData()->save(); + // $answer = $form->getData(); + $answer + ->setTeam($this->getUser()) + ->setDate(new DateTime('now')) + ->setEnigma($enigma); + + $em = $this->getDoctrine()->getManager(); + $em->merge($answer); + $em->flush(); } + + return $this->redirectToRoute('enigma_ok'); } - + return [ 'form' => $form->createView(), 'enigma' => $enigma, ]; } + /** + * @Route("/enigma/ok", name="enigma_ok") + * @Template() + */ + public function okAction() + { + return []; + } + /** * @Route("/enigma/oklm", name="enigma_too_late") * @Template() diff --git a/src/Mmi/Bundle/EnigmaBundle/Resources/views/Default/ok.html.twig b/src/Mmi/Bundle/EnigmaBundle/Resources/views/Default/ok.html.twig new file mode 100644 index 0000000..5960abd --- /dev/null +++ b/src/Mmi/Bundle/EnigmaBundle/Resources/views/Default/ok.html.twig @@ -0,0 +1 @@ +Enregistré !