mirror of
https://gitlab.com/Chill-Projet/chill-bundles.git
synced 2025-07-02 23:16: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)
|
public function buildForm(FormBuilderInterface $builder)
|
||||||
{
|
{
|
||||||
$builder->add('users', EntityType::class, [
|
$builder->add('referrers', EntityType::class, [
|
||||||
'class' => User::class,
|
'class' => User::class,
|
||||||
'choice_label' => function (User $u) {
|
'choice_label' => function (User $u) {
|
||||||
$this->userRender->renderString($u, []);
|
return $this->userRender->renderString($u, []);
|
||||||
},
|
},
|
||||||
'multiple' => true,
|
'multiple' => true,
|
||||||
'expanded' => true
|
'expanded' => true
|
||||||
@ -39,14 +39,14 @@ class ReferrerFilter implements FilterInterface
|
|||||||
|
|
||||||
public function describeAction($data, $format = 'string'): array
|
public function describeAction($data, $format = 'string'): array
|
||||||
{
|
{
|
||||||
$users = [];
|
$referrers = [];
|
||||||
|
|
||||||
foreach ($data['users'] as $u) {
|
foreach ($data['referrers'] as $r) {
|
||||||
$users[] = $u->getUsername();
|
$referrers[] = $this->userRender->renderString($r, []);
|
||||||
}
|
}
|
||||||
|
|
||||||
return ['Filtered by users: only %users%', [
|
return ['Filtered by referrers: only %referrers%', [
|
||||||
'%user%' => implode(', ou ', $users)
|
'%referrers%' => implode(', ou ', $referrers)
|
||||||
]];
|
]];
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -57,8 +57,10 @@ class ReferrerFilter implements FilterInterface
|
|||||||
|
|
||||||
public function alterQuery(QueryBuilder $qb, $data)
|
public function alterQuery(QueryBuilder $qb, $data)
|
||||||
{
|
{
|
||||||
|
$qb->join('acpw.referrers', 'r');
|
||||||
|
|
||||||
$where = $qb->getDQLPart('where');
|
$where = $qb->getDQLPart('where');
|
||||||
$clause = $qb->expr()->in('acpw.referrers', ':users');
|
$clause = $qb->expr()->in('r', ':referrers');
|
||||||
|
|
||||||
if ($where instanceof Andx) {
|
if ($where instanceof Andx) {
|
||||||
$where->add($clause);
|
$where->add($clause);
|
||||||
@ -67,7 +69,7 @@ class ReferrerFilter implements FilterInterface
|
|||||||
}
|
}
|
||||||
|
|
||||||
$qb->add('where', $where);
|
$qb->add('where', $where);
|
||||||
$qb->setParameter('users', $data['users']);
|
$qb->setParameter('referrers', $data['referrers']);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function applyOn(): string
|
public function applyOn(): string
|
||||||
|
Loading…
x
Reference in New Issue
Block a user