Only pass currentUser as filter value if it is not null

This commit is contained in:
Julie Lenaerts 2025-07-22 10:24:23 +02:00
parent 1b655b19ef
commit 42cd1c799a
2 changed files with 7 additions and 6 deletions

View File

@ -138,11 +138,12 @@ final class AccompanyingCourseWorkController extends AbstractController
'before' => $filter->getDateRangeData('dateFilter')['to'], 'before' => $filter->getDateRangeData('dateFilter')['to'],
'after' => $filter->getDateRangeData('dateFilter')['from'], 'after' => $filter->getDateRangeData('dateFilter')['from'],
'user' => $filter->getUserPickerData('userFilter'), 'user' => $filter->getUserPickerData('userFilter'),
'currentUser' => $filter->getSingleCheckboxData('myActionsFilter')
? ($currentUser instanceof User ? $currentUser : null)
: null,
]; ];
if ($filter->getSingleCheckboxData('currentUserFilter') && $currentUser instanceof User) {
$filterData['currentUser'] = $currentUser;
}
$totalItems = $this->workRepository->countByAccompanyingPeriod($period); $totalItems = $this->workRepository->countByAccompanyingPeriod($period);
$paginator = $this->paginator->create($totalItems); $paginator = $this->paginator->create($totalItems);
@ -206,7 +207,7 @@ final class AccompanyingCourseWorkController extends AbstractController
->addUserPicker('userFilter', 'accompanying_course_work.user_filter', ['required' => false]) ->addUserPicker('userFilter', 'accompanying_course_work.user_filter', ['required' => false])
; ;
$filterBuilder->addSingleCheckbox('myActionsFilter', 'accompanying_course_work.my_actions_filter'); $filterBuilder->addSingleCheckbox('currentUserFilter', 'accompanying_course_work.my_actions_filter');
return $filterBuilder->build(); return $filterBuilder->build();
} }

View File

@ -21,7 +21,6 @@ use Doctrine\ORM\EntityRepository;
use Doctrine\ORM\Query\ResultSetMappingBuilder; use Doctrine\ORM\Query\ResultSetMappingBuilder;
use Doctrine\ORM\QueryBuilder; use Doctrine\ORM\QueryBuilder;
use Doctrine\Persistence\ObjectRepository; use Doctrine\Persistence\ObjectRepository;
use Symfony\Component\Security\Core\User\UserInterface;
class AccompanyingPeriodWorkRepository implements ObjectRepository class AccompanyingPeriodWorkRepository implements ObjectRepository
{ {
@ -122,7 +121,7 @@ class AccompanyingPeriodWorkRepository implements ObjectRepository
} }
if (isset($filters['currentUser'])) { if (isset($filters['currentUser'])) {
$sql .= ' AND rw.user_id = '.$filters['currentUser']->getId(); $sql .= ' AND rw.user_id = :currentuser';
} }
$sql .= " AND daterange(:after::date, :before::date) && daterange(w.startDate, w.endDate, '[]')"; $sql .= " AND daterange(:after::date, :before::date) && daterange(w.startDate, w.endDate, '[]')";
@ -153,6 +152,7 @@ class AccompanyingPeriodWorkRepository implements ObjectRepository
$nq = $this->em->createNativeQuery($sql, $rsm) $nq = $this->em->createNativeQuery($sql, $rsm)
->setParameter('periodId', $period->getId(), Types::INTEGER) ->setParameter('periodId', $period->getId(), Types::INTEGER)
->setParameter('types', $typeIds) ->setParameter('types', $typeIds)
->setParameter('currentUser', $filters['currentUser']->getId())
->setParameter('after', $after) ->setParameter('after', $after)
->setParameter('before', $before) ->setParameter('before', $before)
->setParameter('limit', $limit, Types::INTEGER) ->setParameter('limit', $limit, Types::INTEGER)