diff --git a/src/Controller/Administrative/Teamer/IndexController.php b/src/Controller/Administrative/Teamer/IndexController.php index 3f679cf..c496fa3 100644 --- a/src/Controller/Administrative/Teamer/IndexController.php +++ b/src/Controller/Administrative/Teamer/IndexController.php @@ -2,8 +2,11 @@ namespace App\Controller\Administrative\Teamer; +use App\Entity\Teamer; +use App\Htmx\HxRedirectResponse; use App\Repository\TeamerRepository; use App\Service\Common\TeamerFilterHandler; +use Doctrine\ORM\EntityManagerInterface; use Knp\Component\Pager\PaginatorInterface; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Request; @@ -16,7 +19,8 @@ class IndexController extends AbstractController public function __construct( protected readonly TeamerFilterHandler $filterHandler, private readonly TeamerRepository $teamerRepository, - private readonly PaginatorInterface $paginator + private readonly PaginatorInterface $paginator, + private readonly EntityManagerInterface $entityManager ) { } @@ -25,11 +29,10 @@ class IndexController extends AbstractController public function index(Request $request): Response { $filterDto = $this->filterHandler->getFilterSettings(); - $requestedSorting = $request->query->get('sort'); $query = $this ->teamerRepository - ->getListQuery($filterDto, $requestedSorting) + ->getListQuery($filterDto) ; $pagination = $this->paginator->paginate( @@ -43,4 +46,14 @@ class IndexController extends AbstractController 'filterDto' => $filterDto, ]); } + + #[Route('/administrative/teamer/viewed/{uuid}', name: 'app_administrative_teamer_viewed', methods: ['POST'])] + #[IsGranted('ROLE_ADMINISTRATIVE')] + public function viewed(Teamer $teamer): Response + { + $teamer->setViewed(true); + $this->entityManager->flush(); + + return new HxRedirectResponse($this->generateUrl('app_administrative_teamer_index')); + } } \ No newline at end of file diff --git a/src/Repository/TeamerRepository.php b/src/Repository/TeamerRepository.php index 0288c05..73b6bf2 100644 --- a/src/Repository/TeamerRepository.php +++ b/src/Repository/TeamerRepository.php @@ -27,7 +27,7 @@ class TeamerRepository extends ServiceEntityRepository parent::__construct($registry, Teamer::class); } - public function getListQuery(TeamerFilterDto $filterDto, ?string $requestedSorting = null): Query + public function getListQuery(TeamerFilterDto $filterDto): Query { $qb = $this->createQueryBuilder('teamer'); @@ -38,15 +38,10 @@ class TeamerRepository extends ServiceEntityRepository ->leftJoin('teamer.licenses', 'license') ->leftJoin('teamer.feedback', 'feedback') ->leftJoin('teamer.user', 'user') + ->addOrderBy('teamer.viewed', 'asc') + ->addOrderBy('teamer.lastName', 'asc') ; - if (null === $requestedSorting) { - $qb - ->orderBy('teamer.viewed', 'asc') - ->addOrderBy('teamer.lastName', 'asc') - ; - } - if (null !== $filterDto->getName()) { $qb ->andWhere($qb->expr()->orX( diff --git a/templates/administrative/teamer/index.html.twig b/templates/administrative/teamer/index.html.twig index d7caabc..e6baf20 100644 --- a/templates/administrative/teamer/index.html.twig +++ b/templates/administrative/teamer/index.html.twig @@ -94,6 +94,13 @@