src/Controller/ChoraleController.php line 126

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use App\Entity\ChoraleMembres;
  4. use App\Entity\Chorales;
  5. use App\Form\FormChoraleMembreType;
  6. use App\Form\FormChoraleType;
  7. use App\Repository\ChoraleMembresRepository;
  8. use App\Repository\ChoralesRepository;
  9. use App\Repository\ChretiensRepository;
  10. use Doctrine\ORM\EntityManagerInterface;
  11. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  12. use Symfony\Component\HttpFoundation\Request;
  13. use Symfony\Component\HttpFoundation\Response;
  14. use Symfony\Component\Routing\Annotation\Route;
  15. #[Route('/admin')]
  16. class ChoraleController extends AbstractController
  17. {
  18.     public function __construct(
  19.         private ChoralesRepository $choralesRepository,
  20.         private ChoraleMembresRepository $choraleMembresRepository,
  21.         private ChretiensRepository $chretiensRepository,
  22.         private EntityManagerInterface $em,
  23.     ) {}
  24.     #[Route('/chorale/{id<\d+>?0}'name'chorale')]
  25.     public function index($idRequest $request): Response
  26.     {
  27.         //dd($request);
  28.         $new false;
  29.         if (!$id) {
  30.             # Si l'identifiant est null on crée un nouvel élément
  31.             $new true;
  32.             $chorale = new Chorales();
  33.         } else {
  34.             # code...
  35.             $chorale $this->choralesRepository->findOneBy(['id'=>$id]);
  36.         }
  37.         $form $this->createForm(FormChoraleType::class,$chorale);
  38.         
  39.         # Suppression des champs dans un formulaire
  40.         $form->remove(name:'createdAt');
  41.         $form->remove(name:'updatedAt');
  42.         $form->handleRequest($request);
  43.         # Verification de la soumission du formulaire
  44.         if ($form->isSubmitted() && $form->isValid()) {
  45.             $this->em->persist($chorale);
  46.             $this->em->flush();
  47.             $this->addFlash('success',"Opération éffectué avec succès");
  48.             return $this->redirectToRoute('chorale');
  49.         }
  50.         #Liste des chorales
  51.         $chorales $this->choralesRepository->findAll();
  52.         return $this->render('chorale/chorale.html.twig', [
  53.             'chorales' => $chorales,
  54.             'form' => $form->createView(),
  55.             'new'=> $new,
  56.             'urlPrecedente'=>$request->headers->get('referer')
  57.         ]);
  58.     }
  59.     #[Route('/liste-des-membre-chorale/{id<\d+>}/{statut?actif}'name'liste_membre_chorale')]
  60.     public function listeMembreChorale($idRequest $request): Response
  61.     {
  62.         $statut $request->get('statut');
  63.         #Liste des membre d'une chorale
  64.         $chorale $this->choralesRepository->findOneBy(['id'=>$id]);
  65.         
  66.         if ($statut == 'actif') {
  67.             # Recupération des membres uniquement actif
  68.             $membreChorales $this->choraleMembresRepository->findBy(['chorale'=>$chorale,'statut' => true]);
  69.         } elseif ($statut == 'inactif') {
  70.              # Recupération des membres uniquement non actif
  71.              $membreChorales $this->choraleMembresRepository->findBy(['chorale'=>$chorale,'statut' => false]);
  72.         } else {
  73.             $membreChorales $this->choraleMembresRepository->findBy(['chorale'=>$chorale]);
  74.         }
  75.         
  76.         
  77.         //dd($this->chretiensRepository->findChretienParFonction(1));
  78.         return $this->render('chorale/liste.membre.chorale.html.twig', [
  79.             'membreChorales' => $membreChorales,
  80.             // 'membreChoralesActif' => $membreChoralesActif,
  81.             // 'membreChoralesInactif' => $membreChoralesInactif,
  82.             'chorale'=>$chorale,
  83.             'urlPrecedente'=>$request->headers->get('referer')
  84.         ]);
  85.     }
  86.     #[Route('/{id}/modifier-le-poste'name'edit_poste_chorale')]
  87.     public function editPosteChorale(Request $request): Response
  88.     {
  89.         $id $request->get('id');
  90.         $choraleMembre $this->choraleMembresRepository->findOneBy(['id'=>$id]);
  91.         //dd($id);
  92.         $form $this->createForm(FormChoraleMembreType::class, $choraleMembre);
  93.         $form->handleRequest($request);
  94.         if ($form->isSubmitted() && $form->isValid()) {
  95.             $this->em->persist($choraleMembre);
  96.             $this->em->flush();
  97.             return $this->redirectToRoute('liste_membre_chorale',[
  98.                 'id'=>$choraleMembre->getChorale()->getId()
  99.             ]);
  100.         }
  101.         //dd($choraleMembre->getPoste());
  102.         return $this->render('modals/_edit.poste.modal.html.twig', [
  103.             'entity' => $choraleMembre,
  104.             'form' => $form->createView(),
  105.             'Modal_title' => 'Choisir le nouveau poste',
  106.             'path_url' => 'edit_poste_chorale'
  107.         ]);
  108.     }
  109.     #[Route('/apropos-chorale'name'about_chorale')]
  110.     public function choraleWeb(Request $request): Response
  111.     {
  112.         $chorales $this->choraleMembresRepository->findAll();
  113.         //dd($choraleMembre->getPoste());
  114.         return $this->render('chorale/web-chorale.html.twig', [
  115.             'chorales' => $chorales,
  116.         ]);
  117.     }
  118. }