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'],
'after' => $filter->getDateRangeData('dateFilter')['from'],
'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);
$paginator = $this->paginator->create($totalItems);
@ -206,7 +207,7 @@ final class AccompanyingCourseWorkController extends AbstractController
->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();
}

View File

@ -21,7 +21,6 @@ use Doctrine\ORM\EntityRepository;
use Doctrine\ORM\Query\ResultSetMappingBuilder;
use Doctrine\ORM\QueryBuilder;
use Doctrine\Persistence\ObjectRepository;
use Symfony\Component\Security\Core\User\UserInterface;
class AccompanyingPeriodWorkRepository implements ObjectRepository
{
@ -122,7 +121,7 @@ class AccompanyingPeriodWorkRepository implements ObjectRepository
}
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, '[]')";
@ -153,6 +152,7 @@ class AccompanyingPeriodWorkRepository implements ObjectRepository
$nq = $this->em->createNativeQuery($sql, $rsm)
->setParameter('periodId', $period->getId(), Types::INTEGER)
->setParameter('types', $typeIds)
->setParameter('currentUser', $filters['currentUser']->getId())
->setParameter('after', $after)
->setParameter('before', $before)
->setParameter('limit', $limit, Types::INTEGER)