performance tuning on timesheets (#874)

This commit is contained in:
Kevin Papst
2019-06-20 16:05:31 +02:00
committed by GitHub
parent bb8572a364
commit 9fbbaf9b88
11 changed files with 290 additions and 50 deletions

View File

@@ -143,13 +143,10 @@ class ExportController extends AbstractController
*/
protected function getEntries(ExportQuery $query)
{
$query->setResultType(ExportQuery::RESULT_TYPE_QUERYBUILDER);
$query->getBegin()->setTime(0, 0, 0);
$query->getEnd()->setTime(23, 59, 59);
$queryBuilder = $this->timesheetRepository->findByQuery($query);
return $queryBuilder->getQuery()->getResult();
return $this->timesheetRepository->getTimesheetsForQuery($query);
}
/**

View File

@@ -18,7 +18,6 @@ use App\Model\InvoiceModel;
use App\Repository\InvoiceTemplateRepository;
use App\Repository\Query\BaseQuery;
use App\Repository\Query\InvoiceQuery;
use App\Repository\Query\TimesheetQuery;
use App\Repository\TimesheetRepository;
use App\Timesheet\UserDateTimeFactory;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Security;
@@ -166,8 +165,6 @@ class InvoiceController extends AbstractController
return [];
}
$query->setResultType(TimesheetQuery::RESULT_TYPE_QUERYBUILDER);
if (null === $query->getBegin()) {
$query->setBegin($this->dateTimeFactory->createDateTime('first day of this month'));
}
@@ -177,9 +174,7 @@ class InvoiceController extends AbstractController
$query->getBegin()->setTime(0, 0, 0);
$query->getEnd()->setTime(23, 59, 59);
$queryBuilder = $repository->findByQuery($query);
return $queryBuilder->getQuery()->getResult();
return $repository->getTimesheetsForQuery($query);
}
/**

View File

@@ -23,7 +23,6 @@ use App\Timesheet\TrackingMode\TrackingModeInterface;
use App\Timesheet\TrackingModeService;
use App\Timesheet\UserDateTimeFactory;
use Doctrine\Common\Collections\ArrayCollection;
use Pagerfanta\Pagerfanta;
use Symfony\Component\Form\FormInterface;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
@@ -107,11 +106,10 @@ abstract class TimesheetAbstractController extends AbstractController
);
}
/* @var $entries Pagerfanta */
$entries = $this->getRepository()->findByQuery($query);
$pager = $this->getRepository()->getPagerfantaForQuery($query);
return $this->render($renderTemplate, [
'entries' => $entries,
'entries' => $pager,
'page' => $query->getPage(),
'query' => $query,
'showFilter' => $form->isSubmitted(),
@@ -212,7 +210,6 @@ abstract class TimesheetAbstractController extends AbstractController
protected function export(Request $request, string $renderTemplate)
{
$query = new TimesheetQuery();
$query->setResultType(TimesheetQuery::RESULT_TYPE_OBJECTS);
$form = $this->getToolbarForm($query);
$form->handleRequest($request);
@@ -238,8 +235,7 @@ abstract class TimesheetAbstractController extends AbstractController
$query->setUser($this->getUser());
}
/* @var $entries Pagerfanta */
$entries = $this->getRepository()->findByQuery($query);
$entries = $this->getRepository()->getTimesheetsForQuery($query);
return $this->render($renderTemplate, [
'entries' => $entries,