get('chill_task.single_task_repository'); /* @var $paginatorFactory \Chill\MainBundle\Pagination\PaginatorFactory */ $paginatorFactory = $this->get('chill_main.paginator_factory'); /* @var $viewParams array The parameters for the view */ $viewParams['person'] = $person; // collect parameters for filter $params['person'] = $person; if ($request->query->has('date_status')) { $statuses = $request->query->get('date_status'); $singleStatus = count($statuses) === 1; // check for invalid parameters $diff = \array_diff( $statuses, SingleTaskRepository::DATE_STATUSES) ; if (count($diff) > 0) { return new Response( 'date_status not allowed: '. \implode(', ', $diff), Response::HTTP_BAD_REQUEST ); } } foreach(SingleTaskRepository::DATE_STATUSES as $type) { if($request->query->has('date_status') && FALSE === \in_array($type, $statuses ?? [])) { continue; } $params['date_status'] = $type; $count = $taskRepository ->countByParameters($params, $this->getUser()) ; $paginator = $paginatorFactory->create($count); $viewParams['single_task_'.$type.'_count'] = $count; $viewParams['single_task_'.$type.'_paginator'] = $paginator; $viewParams['single_task_'.$type.'_tasks'] = $taskRepository ->findByParameters($params, $this->getUser(), $singleStatus ? $paginator->getCurrentPage()->getFirstItemNumber() : 0, $singleStatus ? $paginator->getItemsPerPage() : 10) ; } return $this->render('ChillTaskBundle:Task:index.html.twig', $viewParams); } protected function getPersonParam(Request $request, EntityManagerInterface $em) { $person = $em->getRepository(Person::class) ->find($request->query->getInt('person_id')) ; if (NULL === $person) { throw $this->createNotFoundException('person not found'); } $this->denyAccessUnlessGranted(PersonVoter::SEE, $person, "You are " . "not allowed to see this person"); return $person; } protected function getUserParam(Request $request, EntityManagerInterface $em) { $user = $em->getRepository(User::class) ->find($request->query->getInt('user_id')) ; if (NULL === $user) { throw $this->createNotFoundException('user not found'); } return $user; } }