trans = $trans; $this->serializer = $serializer; $this->workRepository = $workRepository; $this->paginator = $paginator; } /** * @Route( * "{_locale}/person/accompanying-period/{id}/work/new", * name="chill_person_accompanying_period_work_new", * methods={"GET"} * ) */ public function createWork(AccompanyingPeriod $period): Response { // TODO ACL if ($period->getSocialIssues()->count() === 0) { $this->addFlash('error', $this->trans->trans( "accompanying_work.You must add at least ". "one social issue on accompanying period") ); return $this->redirectToRoute('chill_person_accompanying_course_index', [ 'accompanying_period_id' => $period->getId() ]); } $json = $this->serializer->normalize($period, 'json', [ "groups" => [ "read" ]]); return $this->render('@ChillPerson/AccompanyingCourseWork/create.html.twig', [ 'accompanyingCourse' => $period, 'json' => $json ]); } /** * @Route( * "{_locale}/person/accompanying-period/work/{id}/edit", * name="chill_person_accompanying_period_work_edit", * methods={"GET"} * ) */ public function editWork(AccompanyingPeriodWork $work): Response { // TODO ACL $json = $this->serializer->normalize($work, 'json', [ "groups" => [ "read" ] ]); return $this->render('@ChillPerson/AccompanyingCourseWork/edit.html.twig', [ 'accompanyingCourse' => $work->getAccompanyingPeriod(), 'work' => $work, 'json' => $json ]); } /** * @Route( * "{_locale}/person/accompanying-period/{id}/work", * name="chill_person_accompanying_period_work_list", * methods={"GET"} * ) */ public function listWorkByAccompanyingPeriod(AccompanyingPeriod $period): Response { // TODO ACL $totalItems = $this->workRepository->countByAccompanyingPeriod($period); $paginator = $this->paginator->create($totalItems); $works = $this->workRepository->findByAccompanyingPeriod( $period, ['startDate' => 'DESC', 'endDate' => 'DESC'], $paginator->getItemsPerPage(), $paginator->getCurrentPageFirstItemNumber() ); return $this->render('@ChillPerson/AccompanyingCourseWork/index.html.twig', [ 'accompanyingCourse' => $period, 'works' => $works, 'paginator' => $paginator ]); } }