diff --git a/src/Bundle/ChillPersonBundle/Export/Filter/ReferrerFilter.php b/src/Bundle/ChillPersonBundle/Export/Filter/ReferrerFilter.php index 678feee80..d79027035 100644 --- a/src/Bundle/ChillPersonBundle/Export/Filter/ReferrerFilter.php +++ b/src/Bundle/ChillPersonBundle/Export/Filter/ReferrerFilter.php @@ -22,10 +22,10 @@ class ReferrerFilter implements FilterInterface public function buildForm(FormBuilderInterface $builder) { - $builder->add('users', EntityType::class, [ + $builder->add('referrers', EntityType::class, [ 'class' => User::class, 'choice_label' => function (User $u) { - $this->userRender->renderString($u, []); + return $this->userRender->renderString($u, []); }, 'multiple' => true, 'expanded' => true @@ -39,14 +39,14 @@ class ReferrerFilter implements FilterInterface public function describeAction($data, $format = 'string'): array { - $users = []; + $referrers = []; - foreach ($data['users'] as $u) { - $users[] = $u->getUsername(); + foreach ($data['referrers'] as $r) { + $referrers[] = $this->userRender->renderString($r, []); } - return ['Filtered by users: only %users%', [ - '%user%' => implode(', ou ', $users) + return ['Filtered by referrers: only %referrers%', [ + '%referrers%' => implode(', ou ', $referrers) ]]; } @@ -57,8 +57,10 @@ class ReferrerFilter implements FilterInterface public function alterQuery(QueryBuilder $qb, $data) { + $qb->join('acpw.referrers', 'r'); + $where = $qb->getDQLPart('where'); - $clause = $qb->expr()->in('acpw.referrers', ':users'); + $clause = $qb->expr()->in('r', ':referrers'); if ($where instanceof Andx) { $where->add($clause); @@ -67,7 +69,7 @@ class ReferrerFilter implements FilterInterface } $qb->add('where', $where); - $qb->setParameter('users', $data['users']); + $qb->setParameter('referrers', $data['referrers']); } public function applyOn(): string