diff --git a/src/Bundle/ChillActivityBundle/Controller/ActivityController.php b/src/Bundle/ChillActivityBundle/Controller/ActivityController.php index 1b2e66ea4..c10bf0736 100644 --- a/src/Bundle/ChillActivityBundle/Controller/ActivityController.php +++ b/src/Bundle/ChillActivityBundle/Controller/ActivityController.php @@ -316,7 +316,6 @@ final class ActivityController extends AbstractController if ($form->isSubmitted() && $form->isValid()) { $data = $form->getData(); - dump($data['types']->getValues()); $activities = $this->activityACLAwareRepository ->findByAccompanyingPeriod( $accompanyingPeriod, @@ -326,23 +325,25 @@ final class ActivityController extends AbstractController $data['dateFrom'], $data['jobs']->getValues(), $data['types']->getValues(), + $data['onlyMe'], + null, + ['date' => 'DESC', 'id' => 'DESC'] + ); + } else { + $activities = $this->activityACLAwareRepository + ->findByAccompanyingPeriod( + $accompanyingPeriod, + ActivityVoter::SEE, + 0, + null, + null, + [], + [], + false, null, ['date' => 'DESC', 'id' => 'DESC'] ); } - - $activities = $this->activityACLAwareRepository - ->findByAccompanyingPeriod( - $accompanyingPeriod, - ActivityVoter::SEE, - 0, - null, - null, - [], - [], - null, - ['date' => 'DESC', 'id' => 'DESC'] - ); } $view = 'ChillActivityBundle:Activity:listAccompanyingCourse.html.twig'; diff --git a/src/Bundle/ChillActivityBundle/Repository/ActivityACLAwareRepository.php b/src/Bundle/ChillActivityBundle/Repository/ActivityACLAwareRepository.php index b412b18bf..45401543a 100644 --- a/src/Bundle/ChillActivityBundle/Repository/ActivityACLAwareRepository.php +++ b/src/Bundle/ChillActivityBundle/Repository/ActivityACLAwareRepository.php @@ -72,6 +72,7 @@ final class ActivityACLAwareRepository implements ActivityACLAwareRepositoryInte ?DateTime $after = null, ?array $userJob = [], ?array $activityTypes = [], + bool $onlyMe = false, ?int $limit = 1000, ?array $orderBy = [] ): array { @@ -86,7 +87,7 @@ final class ActivityACLAwareRepository implements ActivityACLAwareRepositoryInte ->getReachableCircles($user, $role, $center); return $this->em->getRepository(Activity::class) - ->findByAccompanyingPeriod($period, $scopes, true, $before, $after, $userJob, $activityTypes, $limit, $start, $orderBy); + ->findByAccompanyingPeriod($period, $scopes, true, $before, $after, $userJob, $activityTypes, $onlyMe, $limit, $start, $orderBy); } public function findByAccompanyingPeriodSimplified(AccompanyingPeriod $period, ?int $limit = 1000): array diff --git a/src/Bundle/ChillActivityBundle/Repository/ActivityACLAwareRepositoryInterface.php b/src/Bundle/ChillActivityBundle/Repository/ActivityACLAwareRepositoryInterface.php index ebba45c37..7592faa02 100644 --- a/src/Bundle/ChillActivityBundle/Repository/ActivityACLAwareRepositoryInterface.php +++ b/src/Bundle/ChillActivityBundle/Repository/ActivityACLAwareRepositoryInterface.php @@ -29,6 +29,7 @@ interface ActivityACLAwareRepositoryInterface ?DateTime $after = null, ?array $userJob = [], ?array $activityTypes = [], + bool $onlyMe = false, ?int $limit = 1000, ?array $orderBy = [] ): array; diff --git a/src/Bundle/ChillActivityBundle/Repository/ActivityRepository.php b/src/Bundle/ChillActivityBundle/Repository/ActivityRepository.php index 5b28fe586..c93ad168a 100644 --- a/src/Bundle/ChillActivityBundle/Repository/ActivityRepository.php +++ b/src/Bundle/ChillActivityBundle/Repository/ActivityRepository.php @@ -52,6 +52,7 @@ class ActivityRepository extends ServiceEntityRepository ?DateTime $after = null, ?array $userJob = [], array $activityTypes = [], + bool $onlyMe = false, ?int $limit = 100, ?int $offset = 0, array $orderBy = ['date' => 'desc'] @@ -80,31 +81,8 @@ class ActivityRepository extends ServiceEntityRepository ) ->setParameter('period', $period); - // Add filter parameters to query if any - if ($before) { - $qb->andWhere( - $qb->expr()->lt('a.date', ':before') - ); - $qb->setParameter('before', $before); - } - - if ($after) { - $qb->andWhere( - $qb->expr()->lt('a.date', ':after') - ); - $qb->setParameter('after', $after); - } - - if (count($activityTypes) > 0) { - $qb->andWhere( - $qb->expr()->in('a.activityType', ':activityTypes') - ); - $qb->setParameter('activityTypes', $activityTypes); - } - - /*if (null !== $userJob) { - $qb->innerJoin() - }*/ + //Add filter queries + $this->addQueryFilters($qb, $userJob, $activityTypes, $after, $before, $onlyMe); foreach ($orderBy as $k => $dir) { $qb->addOrderBy('a.' . $k, $dir); @@ -112,9 +90,6 @@ class ActivityRepository extends ServiceEntityRepository $qb->setMaxResults($limit)->setFirstResult($offset); - dump($qb->getQuery()); - dump($qb->getQuery()->getResult()); - return $qb->getQuery()->getResult(); } @@ -149,12 +124,15 @@ class ActivityRepository extends ServiceEntityRepository /** * @param array|UserJob $jobs * @param array|ActivityType $types + * @param DateTime $dateFrom + * @param DateTime $dateTo */ - private function addQueryFilters(QueryBuilder $qb, array $jobs, array $types, DateTime $dateFrom, DateTime $dateTo, bool $onlyMe): QueryBuilder + private function addQueryFilters(QueryBuilder $qb, array $jobs, array $types, ?DateTime $dateFrom, ?DateTime $dateTo, bool $onlyMe): QueryBuilder { if (0 < count($jobs)) { - $qb->join('a.user', 'u'); - $qb->andWhere($qb->expr()->in('u.job', ':jobs')) + //TODO check for jobs of all users involved + $qb->innerJoin('a.user', 'u'); + $qb->andWhere($qb->expr()->in('u.userJob', ':jobs')) ->setParameter('jobs', $jobs); } @@ -171,6 +149,12 @@ class ActivityRepository extends ServiceEntityRepository )) ->setParameter('date_from', $dateFrom) ->setParameter('date_to', $dateTo); + } elseif (null !== $dateFrom && null === $dateTo) { + $qb->andWhere($qb->expr()->gt('a.date', ':date_from')) + ->setParameter('date_from', $dateFrom); + } elseif (null === $dateFrom && null !== $dateTo) { + $qb->andWhere($qb->expr()->lt('a.date', ':date_to')) + ->setParameter('date_to', $dateTo); } if (true === $onlyMe) { diff --git a/src/Bundle/ChillActivityBundle/Resources/views/Activity/listAccompanyingCourse.html.twig b/src/Bundle/ChillActivityBundle/Resources/views/Activity/listAccompanyingCourse.html.twig index 7773d1728..b08c7e8ad 100644 --- a/src/Bundle/ChillActivityBundle/Resources/views/Activity/listAccompanyingCourse.html.twig +++ b/src/Bundle/ChillActivityBundle/Resources/views/Activity/listAccompanyingCourse.html.twig @@ -29,7 +29,8 @@

{{ 'Activity list'|trans }}

-{#
#} +{# TODO: form error messages not displaying #} +

{{ form_errors(form) }}

{{ form_start(form) }}