1212use App \Form \Type \MissionsSearchType ;
1313use App \Form \Type \MissionType ;
1414use App \Repository \MissionRepository ;
15+ use Knp \Component \Pager \PaginatorInterface ;
1516use Sensio \Bundle \FrameworkExtraBundle \Configuration \Security ;
1617use Symfony \Component \HttpFoundation \RedirectResponse ;
1718use Symfony \Component \HttpFoundation \Request ;
@@ -27,40 +28,52 @@ class MissionController extends AbstractOrganizationController
2728{
2829 private MissionRepository $ missionRepository ;
2930 private PlanningDomain $ planningDomain ;
31+ private PaginatorInterface $ paginator ;
3032
31- public function __construct (MissionRepository $ missionRepository , PlanningDomain $ planningDomain )
33+ public function __construct (MissionRepository $ missionRepository , PlanningDomain $ planningDomain, PaginatorInterface $ paginator )
3234 {
3335 $ this ->missionRepository = $ missionRepository ;
3436 $ this ->planningDomain = $ planningDomain ;
37+ $ this ->paginator = $ paginator ;
3538 }
3639
3740 /**
3841 * @Route(name="app_organization_mission_index", methods={"GET"})
3942 */
40- public function index (): Response
43+ public function index (Request $ request ): Response
4144 {
4245 $ form = $ this ->planningDomain ->generateForm (MissionsSearchType::class);
4346 $ filters = $ form ->getData ();
47+ $ missions = $ this ->paginator ->paginate (
48+ $ this ->missionRepository ->findByFiltersQb ($ filters ),
49+ $ request ->query ->getInt ('page ' , 1 ),
50+ $ this ->getParameter ('app.pagination_default_limit ' )
51+ );
4452
4553 return $ this ->render ('organization/mission/index.html.twig ' , [
4654 'filters ' => $ filters ,
4755 'form ' => $ form ->createView (),
48- 'missions ' => $ this -> missionRepository -> findByFilters ( $ filters ) ,
56+ 'missions ' => $ missions ,
4957 ]);
5058 }
5159
5260 /**
5361 * @Route("/full", name="app_organization_mission_full_list", methods={"GET"})
5462 */
55- public function fullList (): Response
63+ public function fullList (Request $ request ): Response
5664 {
5765 $ form = $ this ->planningDomain ->generateForm (MissionsSearchType::class);
5866 $ filters = $ form ->getData ();
67+ $ missions = $ this ->paginator ->paginate (
68+ $ this ->missionRepository ->findByFiltersQb ($ filters ),
69+ $ request ->query ->getInt ('page ' , 1 ),
70+ $ this ->getParameter ('app.pagination_default_limit ' )
71+ );
5972
6073 return $ this ->render ('organization/mission/list_full.html.twig ' , [
6174 'filters ' => $ filters ,
6275 'form ' => $ form ->createView (),
63- 'missions ' => $ this -> missionRepository -> findByFilters ( $ filters ) ,
76+ 'missions ' => $ missions ,
6477 ]);
6578 }
6679
0 commit comments