$this->context['cities'] = $this->doctrine->getRepository(Location::class)->findCitiesAsArray($this->period);
//Add calendar
- $this->context['calendar'] = $this->doctrine->getRepository(Session::class)->findAllByPeriodAsCalendarArray($this->period, !$this->isGranted('IS_AUTHENTICATED_REMEMBERED'), null, null, 1);
+ $this->context['calendar'] = $this->doctrine->getRepository(Session::class)->findAllByPeriodAsCalendarArray($this->period, !$this->checker->isGranted('IS_AUTHENTICATED_REMEMBERED'), null, null, 1);
//Add dances
$this->context['dances'] = $this->doctrine->getRepository(Dance::class)->findNamesAsArray();
$response = new Response();
//With logged user
- if ($this->isGranted('IS_AUTHENTICATED_REMEMBERED')) {
+ if ($this->checker->isGranted('IS_AUTHENTICATED_REMEMBERED')) {
//Set last modified
$response->setLastModified(new \DateTime('-1 year'));
$response = new Response();
//With logged user
- if ($this->isGranted('IS_AUTHENTICATED_REMEMBERED')) {
+ if ($this->checker->isGranted('IS_AUTHENTICATED_REMEMBERED')) {
//Set last modified
$response->setLastModified(new \DateTime('-1 year'));
]+$this->context['facebook'];
//Create application form for role_guest
- if ($this->isGranted('ROLE_GUEST')) {
+ if ($this->checker->isGranted('ROLE_GUEST')) {
//Set now
$now = new \DateTime('now');
+ //Default favorites and dances
+ $danceFavorites = $dances = [];
+ //Default dance
+ $danceDefault = null;
+
+ //With admin
+ if ($this->checker->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, [
//Set the form attribute
'attr' => [ 'class' => 'col' ],
//Set admin
- 'admin' => $this->isGranted('ROLE_ADMIN'),
+ 'admin' => $this->checker->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
//Set length
'length' => $this->context['session']['length'],
//Set raincancel
- 'raincancel' => ($this->isGranted('ROLE_ADMIN') || !empty($this->context['session']['application']['user']['id']) && $this->getUser()->getId() == $this->context['session']['application']['user']['id']) && $this->context['session']['rainfall'] >= 2,
+ 'raincancel' => ($this->checker->isGranted('ROLE_ADMIN') || !empty($this->context['session']['application']['user']['id']) && $this->getUser()->getId() == $this->context['session']['application']['user']['id']) && $this->context['session']['rainfall'] >= 2,
//Set cancel
- 'cancel' => $this->isGranted('ROLE_ADMIN') || in_array($this->getUser()->getId(), explode("\n", $this->context['session']['sau_id'])),
+ 'cancel' => $this->checker->isGranted('ROLE_ADMIN') || in_array($this->getUser()->getId(), explode("\n", $this->context['session']['sau_id'])),
//Set modify
- 'modify' => $this->isGranted('ROLE_ADMIN') || !empty($this->context['session']['application']['user']['id']) && $this->getUser()->getId() == $this->context['session']['application']['user']['id'] && $this->context['session']['stop'] >= $now && $this->isGranted('ROLE_REGULAR'),
+ 'modify' => $this->checker->isGranted('ROLE_ADMIN') || !empty($this->context['session']['application']['user']['id']) && $this->getUser()->getId() == $this->context['session']['application']['user']['id'] && $this->context['session']['stop'] >= $now && $this->checker->isGranted('ROLE_REGULAR'),
//Set move
- 'move' => $this->isGranted('ROLE_ADMIN') || !empty($this->context['session']['application']['user']['id']) && $this->getUser()->getId() == $this->context['session']['application']['user']['id'] && $this->context['session']['stop'] >= $now && $this->isGranted('ROLE_SENIOR'),
+ 'move' => $this->checker->isGranted('ROLE_ADMIN') || !empty($this->context['session']['application']['user']['id']) && $this->getUser()->getId() == $this->context['session']['application']['user']['id'] && $this->context['session']['stop'] >= $now && $this->checker->isGranted('ROLE_SENIOR'),
//Set attribute
- 'attribute' => $this->isGranted('ROLE_ADMIN') && $this->context['session']['locked'] === null,
+ 'attribute' => $this->checker->isGranted('ROLE_ADMIN') && $this->context['session']['locked'] === null,
//Set session
'session' => $this->context['session']['id']
]);
$userObject = $this->getUser();
//Replace with requested user for admin
- if ($this->isGranted('ROLE_ADMIN') && !empty($data['user'])) {
+ if ($this->checker->isGranted('ROLE_ADMIN') && !empty($data['user'])) {
$userObject = $this->doctrine->getRepository(User::class)->findOneById($data['user']);
}
];
//With raincancel and application and (rainfall or admin)
- if ($action['raincancel'] && ($application = $sessionObject->getApplication()) && ($sessionObject->getRainfall() >= 2 || $this->isGranted('ROLE_ADMIN'))) {
+ if ($action['raincancel'] && ($application = $sessionObject->getApplication()) && ($sessionObject->getRainfall() >= 2 || $this->checker->isGranted('ROLE_ADMIN'))) {
//Cancel application at start minus one day
$application->setCanceled($canceled);
//With modify
} elseif ($action['modify']) {
//With admin
- if ($this->isGranted('ROLE_ADMIN')) {
+ if ($this->checker->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']);
}