User: Add ordering logic for courses and sessions list - refs #1655

pull/6036/head
Christian Beeznest 10 months ago
parent 5a4608d1e6
commit 8689575e2f
  1. 26
      src/CoreBundle/DataProvider/Extension/CourseRelUserExtension.php
  2. 4
      src/CoreBundle/Repository/SessionRepository.php

@ -60,20 +60,24 @@ final class CourseRelUserExtension implements QueryCollectionExtensionInterface
}
}
if ($this->security->isGranted('ROLE_ADMIN')) {
return;
}
if (CourseRelUser::class === $resourceClass) {
if ('collection_query' === $operation?->getName()) {
/** @var User|null $user */
if (null === $user = $this->security->getUser()) {
throw new AccessDeniedException('Access Denied.');
}
$rootAlias = $queryBuilder->getRootAliases()[0];
$queryBuilder->andWhere(\sprintf('%s.user = :current_user', $rootAlias));
$queryBuilder->setParameter('current_user', $user->getId());
$queryBuilder->leftJoin("$rootAlias.course", 'c');
$queryBuilder
->orderBy('c.title', 'ASC')
->addOrderBy("$rootAlias.sort", 'ASC')
->addOrderBy("$rootAlias.userCourseCat", 'ASC');
if (!$this->security->isGranted('ROLE_ADMIN')) {
/** @var User|null $user */
if (null === $user = $this->security->getUser()) {
throw new AccessDeniedException('Access Denied.');
}
$queryBuilder->andWhere(\sprintf('%s.user = :current_user', $rootAlias));
$queryBuilder->setParameter('current_user', $user->getId());
}
}
}

@ -78,7 +78,9 @@ class SessionRepository extends ServiceEntityRepository
'user' => $user,
'url' => $url,
])
;
->orderBy('s.displayStartDate', 'ASC')
->addOrderBy('s.title', 'ASC')
->addOrderBy('s.position', 'ASC');
return $qb;
}

Loading…
Cancel
Save