From 816b43bb7460732265bfb860c7d21a1e6e2c677a Mon Sep 17 00:00:00 2001 From: Aymeric SERRA Date: Thu, 9 Feb 2023 20:58:58 +0100 Subject: [PATCH] =?UTF-8?q?Ajout=20de=20la=20moyenne=20de=20la=20note=20?= =?UTF-8?q?=C3=A0=20la=20page?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Controller/AtelierController.php | 6 ++++-- src/Repository/FormationUserRepository.php | 12 ++++++++++++ templates/atelier/show.html.twig | 6 ++++++ 3 files changed, 22 insertions(+), 2 deletions(-) diff --git a/src/Controller/AtelierController.php b/src/Controller/AtelierController.php index dddaea5..a405028 100644 --- a/src/Controller/AtelierController.php +++ b/src/Controller/AtelierController.php @@ -4,6 +4,7 @@ namespace App\Controller; use App\Entity\Atelier; use App\Repository\AtelierRepository; +use App\Repository\FormationUserRepository; use App\Repository\UserRepository; use App\Services\MarkdownAtelier; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; @@ -22,14 +23,15 @@ class AtelierController extends AbstractController } #[Route('/{id}', name: 'app_atelier_show', methods: ['GET'])] - public function show(Atelier $atelier, MarkdownAtelier $markdownAtelier, UserRepository $userRepository): Response + public function show(Atelier $atelier, MarkdownAtelier $markdownAtelier, UserRepository $userRepository, FormationUserRepository $repository): Response { $eleves = $userRepository->getEleves($atelier); $user = $this->getUser(); return $this->render('atelier/show.html.twig', [ 'atelier' => $markdownAtelier->parse($atelier), 'eleves' => $eleves, - 'inscrit' => $user != null && $eleves->contains($this->getUser()), + 'note' => $repository->getAvg($atelier), + 'inscrit' => $user != null && $eleves->contains($this->getUser()), ]); } } diff --git a/src/Repository/FormationUserRepository.php b/src/Repository/FormationUserRepository.php index 7d421b7..ec1c93f 100644 --- a/src/Repository/FormationUserRepository.php +++ b/src/Repository/FormationUserRepository.php @@ -2,6 +2,7 @@ namespace App\Repository; +use App\Entity\Atelier; use App\Entity\FormationUser; use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository; use Doctrine\Persistence\ManagerRegistry; @@ -39,6 +40,17 @@ class FormationUserRepository extends ServiceEntityRepository } } + public function getAvg(Atelier $atelier): ?float + { + return $this + ->createQueryBuilder('fu') + ->select('AVG(fu.note)') + ->where('fu.atelier = :atelier and fu.note is not null') + ->setParameter('atelier', $atelier) + ->getQuery() + ->getSingleScalarResult(); + } + // /** // * @return FormationUser[] Returns an array of FormationUser objects // */ diff --git a/templates/atelier/show.html.twig b/templates/atelier/show.html.twig index a881865..e8d199e 100644 --- a/templates/atelier/show.html.twig +++ b/templates/atelier/show.html.twig @@ -23,6 +23,12 @@ Email instructeur {{ atelier.instructeur.email }} + + Note + + {{ note }} + + Elèves inscrits