opyimisation de la requetes des événements
This commit is contained in:
@@ -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));
|
||||
}
|
||||
|
@@ -277,7 +277,23 @@
|
||||
{% endfor %}
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<a>
|
||||
<label class="control-label">
|
||||
Service
|
||||
</label>
|
||||
</a>
|
||||
<div class="select-control">
|
||||
<select class="form-control select2entity" id="sideservice" name="sideservice">
|
||||
<option value="all" selected>Tout les services</option>
|
||||
{% for service in app.session.get('services') %}
|
||||
{% set selected="" %}
|
||||
{%if service.id==app.session.get('idservice') %}
|
||||
{% set selected="selected" %}
|
||||
{% endif %}
|
||||
<option value="{{service.id}}" {{selected}}>{{service.name}}</option>
|
||||
{% endfor %}
|
||||
</select>
|
||||
</div>
|
||||
<a>
|
||||
<label class="control-label">
|
||||
Intervenant
|
||||
@@ -314,23 +330,7 @@
|
||||
{% endfor %}
|
||||
</select>
|
||||
</div>
|
||||
<a>
|
||||
<label class="control-label">
|
||||
Service
|
||||
</label>
|
||||
</a>
|
||||
<div class="select-control">
|
||||
<select class="form-control select2entity" id="sideservice" name="sideservice">
|
||||
<option value="all" selected>Tout les services</option>
|
||||
{% for service in app.session.get('services') %}
|
||||
{% set selected="" %}
|
||||
{%if service.id==app.session.get('idservice') %}
|
||||
{% set selected="selected" %}
|
||||
{% endif %}
|
||||
<option value="{{service.id}}" {{selected}}>{{service.name}}</option>
|
||||
{% endfor %}
|
||||
</select>
|
||||
</div>
|
||||
|
||||
</li>
|
||||
|
||||
<li class="last"></li>
|
||||
|
Reference in New Issue
Block a user