mirror of
https://gitlab.com/Chill-Projet/chill-bundles.git
synced 2025-07-01 22:46:13 +00:00
filter for agents traitants
This commit is contained in:
parent
d5d38053cd
commit
cb42b68c33
@ -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
|
||||
|
Loading…
x
Reference in New Issue
Block a user