mirror of
https://gitlab.com/Chill-Projet/chill-bundles.git
synced 2025-06-12 13:24:25 +00:00
HasNoActivityFilter (in activity)
This commit is contained in:
parent
0e553594a0
commit
6d0622aa38
@ -11,10 +11,12 @@ declare(strict_types=1);
|
||||
|
||||
namespace Chill\ActivityBundle\Export\Filter\ACPFilters;
|
||||
|
||||
use Chill\ActivityBundle\Entity\Activity;
|
||||
use Chill\MainBundle\Export\FilterInterface;
|
||||
use Chill\PersonBundle\Export\Declarations;
|
||||
use Doctrine\ORM\QueryBuilder;
|
||||
use Symfony\Component\Form\FormBuilderInterface;
|
||||
use Doctrine\ORM\Query\Expr;
|
||||
|
||||
class HasNoActivityFilter implements FilterInterface
|
||||
{
|
||||
@ -25,11 +27,19 @@ class HasNoActivityFilter implements FilterInterface
|
||||
|
||||
public function alterQuery(QueryBuilder $qb, $data)
|
||||
{
|
||||
if (!in_array('activity', $qb->getAllAliases(), true)) {
|
||||
$qb->join(Activity::class, 'activity', Expr\Join::WITH, 'activity.accompanyingPeriod = acp');
|
||||
}
|
||||
|
||||
$qb
|
||||
->andWhere(
|
||||
$qb->expr()->in('', ':')
|
||||
)
|
||||
->setParameter('', $data[]);
|
||||
//->andWhere('COUNT(acp.activities) IS NULL')
|
||||
//TODO check this:
|
||||
->andWhere('
|
||||
NOT EXISTS (
|
||||
SELECT 1 FROM '. Activity::class .' activity
|
||||
WHERE activity.accompanyingPeriod = acp
|
||||
)
|
||||
');
|
||||
}
|
||||
|
||||
public function applyOn(): string
|
||||
@ -39,13 +49,12 @@ class HasNoActivityFilter implements FilterInterface
|
||||
|
||||
public function buildForm(FormBuilderInterface $builder)
|
||||
{
|
||||
$builder->add();
|
||||
//no form needed
|
||||
}
|
||||
|
||||
public function describeAction($data, $format = 'string'): array
|
||||
{
|
||||
return ['', [
|
||||
]];
|
||||
return ['Filtered acp which has no activities'];
|
||||
}
|
||||
|
||||
public function getTitle(): string
|
||||
|
@ -278,6 +278,7 @@ Filter activity by userscope: Filtrer les activités par service du créateur
|
||||
Accepted userscope: Services
|
||||
|
||||
Filter acp which has no activity: Filtrer les parcours qui n’ont pas d’activité
|
||||
Filtered acp which has no activities: Filtrés les parcours qui n'ont pas d'activités
|
||||
Group acp by activity number: Grouper les parcours par nombre d’activité
|
||||
Group activity by sentreceived: Grouper les activités par envoyé / reçu
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user