accompanyingPeriodRepository = $accompanyingPeriodRepository; $this->paginatorFactory = $paginatorFactory; } /** * @Route("/{_locale}/person/accompanying-periods/my", name="chill_person_accompanying_period_user") */ public function listAction(Request $request): Response { $active = $request->query->getBoolean('active', true); $steps = match ($active) { true => [ AccompanyingPeriod::STEP_CONFIRMED, AccompanyingPeriod::STEP_CONFIRMED_INACTIVE_LONG, AccompanyingPeriod::STEP_CONFIRMED_INACTIVE_SHORT, ], false => [ AccompanyingPeriod::STEP_CLOSED, ] }; $total = $this->accompanyingPeriodRepository->countBy(['user' => $this->getUser(), 'step' => $steps]); $pagination = $this->paginatorFactory->create($total); $accompanyingPeriods = $this->accompanyingPeriodRepository->findBy( ['user' => $this->getUser(), 'step' => $steps], ['openingDate' => 'DESC'], $pagination->getItemsPerPage(), $pagination->getCurrentPageFirstItemNumber() ); return $this->render('@ChillPerson/AccompanyingPeriod/user_periods_list.html.twig', [ 'accompanyingPeriods' => $accompanyingPeriods, 'pagination' => $pagination, 'active' => $active, ]); } /** * @Route("/{_locale}/person/accompanying-periods/my/drafts", name="chill_person_accompanying_period_draft_user") */ public function listDraftsAction(): Response { $total = $this->accompanyingPeriodRepository->countBy(['user' => $this->getUser(), 'step' => 'DRAFT']); $pagination = $this->paginatorFactory->create($total); $accompanyingPeriods = $this->accompanyingPeriodRepository->findBy( ['createdBy' => $this->getUser(), 'step' => 'DRAFT'], ['id' => 'DESC'], $pagination->getItemsPerPage(), $pagination->getCurrentPageFirstItemNumber() ); return $this->render('@ChillPerson/AccompanyingPeriod/user_draft_periods_list.html.twig', [ 'accompanyingPeriods' => $accompanyingPeriods, 'pagination' => $pagination, ]); } }