X-Git-Url: https://git.rapsys.eu/airbundle/blobdiff_plain/08f7a501328b732554b39f59f90c06d30d78e9c3..d65692ca092f27c7e53b079aea7df6f5bbbf06af:/Controller/AbstractController.php diff --git a/Controller/AbstractController.php b/Controller/AbstractController.php index 6fbac61..05a928d 100644 --- a/Controller/AbstractController.php +++ b/Controller/AbstractController.php @@ -1,7 +1,7 @@ * @@ -26,13 +26,13 @@ use Symfony\Component\Routing\RouterInterface; use Symfony\Component\Translation\TranslatorInterface; use Symfony\Contracts\Service\ServiceSubscriberInterface; +use Rapsys\AirBundle\Entity\Dance; use Rapsys\AirBundle\Entity\Location; use Rapsys\AirBundle\Entity\Slot; use Rapsys\AirBundle\Entity\User; use Rapsys\AirBundle\RapsysAirBundle; /** - * * Provides common features needed in controllers. * * {@inheritdoc} @@ -507,18 +507,33 @@ abstract class AbstractController extends BaseAbstractController implements Serv //Fetch doctrine $doctrine = $this->get('doctrine'); + //Get favorites dances + $danceFavorites = $doctrine->getRepository(Dance::class)->findByUserId($this->getUser()->getId()); + + //Set dance default + $danceDefault = !empty($danceFavorites)?current($danceFavorites):null; + //Get favorites locations $locationFavorites = $doctrine->getRepository(Location::class)->findByUserId($this->getUser()->getId()); //Set location default - $locationDefault = current($locationFavorites); + $locationDefault = !empty($locationFavorites)?current($locationFavorites):null; //With admin if ($this->isGranted('ROLE_ADMIN')) { + //Get dances + $dances = $doctrine->getRepository(Dance::class)->findAll(); + //Get locations $locations = $doctrine->getRepository(Location::class)->findAll(); //Without admin } else { + //Restrict to favorite dances + $dances = $danceFavorites; + + //Reset favorites + $danceFavorites = []; + //Restrict to favorite locations $locations = $locationFavorites; @@ -548,6 +563,12 @@ abstract class AbstractController extends BaseAbstractController implements Serv 'action' => $this->generateUrl('rapsys_air_application_add'), //Set the form attribute 'attr' => [ 'class' => 'col' ], + //Set dance choices + 'dance_choices' => $dances, + //Set dance default + 'dance_default' => $danceDefault, + //Set dance favorites + 'dance_favorites' => $danceFavorites, //Set location choices 'location_choices' => $locations, //Set location default