From 761f4c929d321410b773e314a544756e08deb348 Mon Sep 17 00:00:00 2001 From: Matthieu Lamalle Date: Tue, 1 Sep 2020 14:34:24 +0200 Subject: [PATCH] =?UTF-8?q?opyimisation=20de=20la=20requetes=20des=20?= =?UTF-8?q?=C3=A9v=C3=A9nements?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/Controller/EventController.php | 43 ++++++++++++++----- src/schedule-2.0/templates/base.html.twig | 36 ++++++++-------- 2 files changed, 51 insertions(+), 28 deletions(-) diff --git a/src/schedule-2.0/src/Controller/EventController.php b/src/schedule-2.0/src/Controller/EventController.php index e255281..2708c8a 100755 --- a/src/schedule-2.0/src/Controller/EventController.php +++ b/src/schedule-2.0/src/Controller/EventController.php @@ -26,7 +26,6 @@ class EventController extends AbstractController public function list(Request $request) { $em = $this->getDoctrine()->getManager(); - $users = $em->getRepository("App:User")->findAll(); $tasks = $em->getRepository("App:Task")->findAll(); @@ -42,20 +41,48 @@ class EventController extends AbstractController { $em = $this->getDoctrine()->getManager(); $tbevents=[]; - - // Evenements + $start = $request->query->get('start'); + $end = $request->query->get('end'); $iduser=$this->get("session")->get("iduser"); - if($iduser=="all") + // Evenements + if($iduser=="all") { $events=$em->getRepository("App:Event")->findAll(); + $events = $em + ->createQueryBuilder('event') + ->select('event') + ->from('App:Event','event') + ->Where('event.start>=:start AND event.end <:end') + ->setParameter('start',$start) + ->setParameter('end',$end) + ->getQuery()->getResult(); + } else { $user=$em->getRepository("App:User")->find($iduser); $events=$em->getRepository("App:Event")->findBy(["user"=>$user]); + $events = $em + ->createQueryBuilder('event') + ->select('event') + ->from('App:Event','event') + ->Where('event.user=:user AND event.start>=:start AND event.end <:end') + ->setParameter('user',$user->getId()) + ->setParameter('start',$start) + ->setParameter('end',$end) + ->getQuery()->getResult(); } foreach($events as $event) { - $idproject=$event->getTask()->getProject()->getId(); - + //Filtre par service + + if($this->get('session')->get('idservice')!="all") { + + $idservice=$event->getUser()->getService()->getId(); + if ($idservice!=$this->get('session')->get('idservice')){ + continue; + } + } // Filtre par project + if($this->get('session')->get('idproject')!="all") { + $idproject=$event->getTask()->getProject()->getId(); if($idproject!=$this->get('session')->get('idproject')) continue; } @@ -64,7 +91,6 @@ class EventController extends AbstractController } // Astreintes - $iduser=$this->get("session")->get("iduser"); if($iduser=="all") $penaltys=$em->getRepository("App:Penalty")->findAll(); else { @@ -72,11 +98,9 @@ class EventController extends AbstractController $user=$em->getRepository("App:User")->find($iduser); $penaltys=$em->getRepository("App:Penalty")->findBy(["user"=>$user]); } - foreach($penaltys as $penalty) { $tmp=$this->formatEvent($penalty); array_push($tbevents,$tmp); - } // Breakday @@ -87,7 +111,6 @@ class EventController extends AbstractController } - // Retour return new Response(json_encode($tbevents)); } diff --git a/src/schedule-2.0/templates/base.html.twig b/src/schedule-2.0/templates/base.html.twig index 301d36b..c6c61e5 100644 --- a/src/schedule-2.0/templates/base.html.twig +++ b/src/schedule-2.0/templates/base.html.twig @@ -277,7 +277,23 @@ {% endfor %} - + + + +
+ +
- - -
- -
+