/** * @param Tap[] $taps * @return string indice des jours de la semaine séparé par des ";" */ public function transform($taps) { if (null === $taps) { return ''; } return implode(";", $this->daysOfWeek->getTapSelectionToArray($taps)); }
/** * Affiche le dashboard * * @param Request $request contient les paramètres passés en URL * * @return Response renvoit une reponse HTTP après rendu du template dashboard */ public function dashboardAction(Request $request) { $user = $this->getUser(); if (!$user) { throw $this->createAccessDeniedException(); } $em = $this->getDoctrine()->getManager(); // liste des enfants $children = $em->getRepository("WCSCantineBundle:Eleve")->findChildren($user); $nbChildrenVoyageInscrits = $em->getRepository('WCSCantineBundle:Eleve')->findNbEnfantInscritsVoyage($user, $this->get('wcs.datenow')->getDate()); // periodes TAP/Garderie $current_date = $this->get('wcs.datenow')->getDate(); $scheduler = $this->get('wcs.gesty.scheduler'); $firstDate = $scheduler->getFirstAvailableDate($current_date, ActivityType::TAP); $period_subscriptions = $scheduler->getCurrentOrNextSchoolPeriod($firstDate); // traitera la liste des taps, garderie // pour la période en cours $daysOfWeek = new DaysOfWeeks($period_subscriptions, $this->get('wcs.gesty.scheduler')); /** * récupère les taps et les garderies de chaque enfants * uniquement si le total de taps + garderie > nb inscriptions pour la période * @var Eleve $child */ $children_activities = array(); foreach ($children as $child) { $array["taps"] = $daysOfWeek->getTapSelectionToArray($child->getTaps()); $array["garderies"] = $daysOfWeek->getGarderieSelectionToArray($child->getGarderies()); $children_activities[$child->getId()] = $array; } return $this->render('WCSCantineBundle:Eleve:dashboard.html.twig', array('user' => $user, 'children' => $children, 'files' => $this->getFiles($user, $nbChildrenVoyageInscrits), 'children_activities' => $children_activities, 'nbChildrenVoyageInscrits' => $nbChildrenVoyageInscrits, 'period_subscriptions' => $period_subscriptions)); }