From: Raphaƫl Gertz Date: Wed, 21 Feb 2024 11:44:15 +0000 (+0100) Subject: Add dance and slot members to session edit form X-Git-Tag: 0.3.0~73 X-Git-Url: https://git.rapsys.eu/airbundle/commitdiff_plain/9a4b7c9e265c6f377297014d79183a348d1c3a2e?hp=128ed92a055ffab5fb46f6b1a468a383a9175cad Add dance and slot members to session edit form --- diff --git a/Controller/SessionController.php b/Controller/SessionController.php index db556dc..f557419 100644 --- a/Controller/SessionController.php +++ b/Controller/SessionController.php @@ -422,6 +422,23 @@ class SessionController extends AbstractController { //Set now $now = new \DateTime('now'); + //Default favorites and dances + $danceFavorites = $dances = []; + //Default dance + $danceDefault = null; + + //With admin + if ($this->isGranted('ROLE_ADMIN')) { + //Get favorites dances + $danceFavorites = $this->doctrine->getRepository(Dance::class)->findByUserId($this->getUser()->getId()); + + //Get dances + $dances = $this->doctrine->getRepository(Dance::class)->findAllIndexed(); + + //Set dance default + $danceDefault = !empty($this->context['session']['application'])?$dances[$this->context['session']['application']['dance']['id']]:null; + } + //Create SessionType form //TODO: move to named form ??? $sessionForm = $this->createForm('Rapsys\AirBundle\Form\SessionType', null, [ @@ -431,6 +448,15 @@ class SessionController extends AbstractController { 'attr' => [ 'class' => 'col' ], //Set admin 'admin' => $this->isGranted('ROLE_ADMIN'), + //Set dance choices + 'dance_choices' => $dances, + //Set dance default + 'dance_default' => $danceDefault, + //Set dance favorites + 'dance_favorites' => $danceFavorites, + //Set to session slot or evening by default + //XXX: default to Evening (3) + 'slot_default' => $this->doctrine->getRepository(Slot::class)->findOneById($this->context['session']['slot']['id']??3), //Set default user to current 'user' => $this->getUser()->getId(), //Set date @@ -524,6 +550,18 @@ class SessionController extends AbstractController { } elseif ($action['modify']) { //With admin if ($this->isGranted('ROLE_ADMIN')) { + //Get application + $application = $this->doctrine->getRepository(Application::class)->findOneBySessionUser($sessionObject, $userObject); + + //Set dance + $application->setDance($data['dance']); + + //Queue session save + $this->manager->persist($application); + + //Set slot + $sessionObject->setSlot($data['slot']); + //Set date $sessionObject->setDate($data['date']); }