diff --git a/.gitignore b/.gitignore index 8b151bd..f616c94 100644 --- a/.gitignore +++ b/.gitignore @@ -14,4 +14,3 @@ /web/bundles/ /tags *.swp -.mage diff --git a/.mage/config/environment/.gitignore b/.mage/config/environment/.gitignore new file mode 100644 index 0000000..e69de29 diff --git a/.mage/config/environment/production.yml b/.mage/config/environment/production.yml new file mode 100644 index 0000000..2b55f6d --- /dev/null +++ b/.mage/config/environment/production.yml @@ -0,0 +1,19 @@ +deployment: + user: webdefis48 + from: ./ + to: /services/web/www/defis48.deblan.org/website/ + excludes: + - .git + - var + - app/config/parameters.yml + +releases: + enabled: false + +hosts: + - deblan.org +tasks: + pre-deploy: [] + on-deploy: [] + +verbose_logging: true diff --git a/.mage/config/general.yml b/.mage/config/general.yml new file mode 100644 index 0000000..9aad7ba --- /dev/null +++ b/.mage/config/general.yml @@ -0,0 +1,7 @@ +# global settings +name: +email: +notifications: false +logging: true +maxlogs: 30 +ssh_needs_tty: false diff --git a/.mage/logs/.gitignore b/.mage/logs/.gitignore new file mode 100644 index 0000000..c96a04f --- /dev/null +++ b/.mage/logs/.gitignore @@ -0,0 +1,2 @@ +* +!.gitignore \ No newline at end of file diff --git a/.mage/tasks/.gitignore b/.mage/tasks/.gitignore new file mode 100644 index 0000000..e69de29 diff --git a/README.md b/README.md index a9e2eae..633190c 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,8 @@ +Défis 48h +========= + Installation -============ +------------ L'installation est standard à celle d'une application symfony classique. Elle implique cependant la génération de la base de données qui se réalise en 2 étapes : @@ -18,7 +21,7 @@ $ bin/console doctrine:schema:update --force ``` Mise à jour -=========== +----------- ```bash $ git pull origin master @@ -29,10 +32,20 @@ $ bin/console doctrine:schema:update --force ``` Exécution -========= +--------- Serveur de développement : ``` $ bin/console server:run & ``` + +Déploiement +----------- + +Utilisation de mate (`/.mate`) + +``` +$ vendor/bin/mage deploy to:production +``` + 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é !