filter for agents traitants

This commit is contained in:
Julie Lenaerts 2022-07-26 15:46:16 +02:00
parent d5d38053cd
commit cb42b68c33

View File

@ -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