Fixed: [export][filter by user's job] take into account the job associated to the user instead of the one associated to the course

This commit is contained in:
2023-02-08 15:59:42 +00:00
committed by Julien Fastré
parent 988495df27
commit 80835dd7c3
4 changed files with 8 additions and 16 deletions

View File

@@ -19,7 +19,7 @@ use Doctrine\ORM\QueryBuilder;
use Symfony\Component\Form\FormBuilderInterface;
use function in_array;
final class JobAggregator implements AggregatorInterface
final class UserJobAggregator implements AggregatorInterface
{
private UserJobRepository $jobRepository;
@@ -40,11 +40,11 @@ final class JobAggregator implements AggregatorInterface
public function alterQuery(QueryBuilder $qb, $data)
{
if (!in_array('acpjob', $qb->getAllAliases(), true)) {
$qb->leftJoin('acp.job', 'acpjob');
if (!in_array('acpuser', $qb->getAllAliases(), true)) {
$qb->leftJoin('acp.user', 'acpuser');
}
$qb->addSelect('IDENTITY(acp.job) AS job_aggregator');
$qb->addSelect('IDENTITY(acpuser.userJob) AS job_aggregator');
$qb->addGroupBy('job_aggregator');
}

View File

@@ -126,12 +126,4 @@ class UserJobFilter implements FilterInterface
{
return 'Filter by user job';
}
private function getUserJob(): UserJob
{
/** @var User $user */
$user = $this->security->getUser();
return $user->getUserJob();
}
}