From 6121abb241cde3b7b22216a1315d9e5f583f4568 Mon Sep 17 00:00:00 2001 From: Zakarya BENJABALLAH Date: Thu, 9 Feb 2023 10:57:57 +0100 Subject: [PATCH] =?UTF-8?q?Ajout=20inscription=20et=20d=C3=A9sinscription?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Controller/AtelierController.php | 21 +++++++++++++++++++++ templates/atelier/show.html.twig | 19 ++++++++++++++----- 2 files changed, 35 insertions(+), 5 deletions(-) diff --git a/src/Controller/AtelierController.php b/src/Controller/AtelierController.php index 711ce0e..92e6354 100644 --- a/src/Controller/AtelierController.php +++ b/src/Controller/AtelierController.php @@ -6,6 +6,7 @@ use App\Entity\Atelier; use App\Form\AtelierType; use App\Repository\AtelierRepository; use App\Services\MarkdownAtelier; +use Doctrine\Persistence\ManagerRegistry; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Response; @@ -59,6 +60,7 @@ class AtelierController extends AbstractController { return $this->render('atelier/show.html.twig', [ 'atelier' => $markdownAtelier->parse($atelier), + 'inscrit' => $atelier->getEleves()->contains($this->getUser()), ]); } @@ -99,4 +101,23 @@ class AtelierController extends AbstractController return $this->redirectToRoute('app_atelier_index', [], Response::HTTP_SEE_OTHER); } + + #[IsGranted('ROLE_APPRENTI')] + #[Route('/{id}/inscrire', name: 'app_atelier_inscription', methods: ['POST'])] + public function inscription(Request $request, Atelier $atelier, ManagerRegistry $doctrine): Response + { + $entityManager = $doctrine->getManager(); + $atelier->addEleve($this->getUser()); + $entityManager->flush(); + return $this->redirectToRoute('app_atelier_show', ["id"=>$atelier->getId()], Response::HTTP_SEE_OTHER); + } + #[IsGranted('ROLE_APPRENTI')] + #[Route('/{id}/desinscrire', name: 'app_atelier_desinscrire', methods: ['POST'])] + public function desinscrire(Request $request, Atelier $atelier, ManagerRegistry $doctrine): Response + { + $entityManager = $doctrine->getManager(); + $atelier->removeEleve($this->getUser()); + $entityManager->flush(); + return $this->redirectToRoute('app_atelier_show', ["id"=>$atelier->getId()], Response::HTTP_SEE_OTHER); + } } diff --git a/templates/atelier/show.html.twig b/templates/atelier/show.html.twig index 70fdad9..f3c7336 100644 --- a/templates/atelier/show.html.twig +++ b/templates/atelier/show.html.twig @@ -21,19 +21,28 @@ Email instructeur - {{ atelier.instructeur.email}} + {{ atelier.instructeur.email }}
{% if app.user and app.user == atelier.instructeur %} - Modifier + Modifier {% endif %} Retour à la liste {% if app.user and app.user == atelier.instructeur %} - {{ include('atelier/_delete_form.html.twig') }} + {{ include('atelier/_delete_form.html.twig') }} + {% endif %} + {% if not inscrit %} +
+ +
+ {% else %} +
+ +
{% endif %}
-{% endblock %} - +{% endblock %} \ No newline at end of file