<?php
namespace App\Controller;
use App\Entity\ChoraleMembres;
use App\Entity\Chorales;
use App\Form\FormChoraleMembreType;
use App\Form\FormChoraleType;
use App\Repository\ChoraleMembresRepository;
use App\Repository\ChoralesRepository;
use App\Repository\ChretiensRepository;
use Doctrine\ORM\EntityManagerInterface;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
#[Route('/admin')]
class ChoraleController extends AbstractController
{
public function __construct(
private ChoralesRepository $choralesRepository,
private ChoraleMembresRepository $choraleMembresRepository,
private ChretiensRepository $chretiensRepository,
private EntityManagerInterface $em,
) {}
#[Route('/chorale/{id<\d+>?0}', name: 'chorale')]
public function index($id, Request $request): Response
{
//dd($request);
$new = false;
if (!$id) {
# Si l'identifiant est null on crée un nouvel élément
$new = true;
$chorale = new Chorales();
} else {
# code...
$chorale = $this->choralesRepository->findOneBy(['id'=>$id]);
}
$form = $this->createForm(FormChoraleType::class,$chorale);
# Suppression des champs dans un formulaire
$form->remove(name:'createdAt');
$form->remove(name:'updatedAt');
$form->handleRequest($request);
# Verification de la soumission du formulaire
if ($form->isSubmitted() && $form->isValid()) {
$this->em->persist($chorale);
$this->em->flush();
$this->addFlash('success',"Opération éffectué avec succès");
return $this->redirectToRoute('chorale');
}
#Liste des chorales
$chorales = $this->choralesRepository->findAll();
return $this->render('chorale/chorale.html.twig', [
'chorales' => $chorales,
'form' => $form->createView(),
'new'=> $new,
'urlPrecedente'=>$request->headers->get('referer')
]);
}
#[Route('/liste-des-membre-chorale/{id<\d+>}/{statut?actif}', name: 'liste_membre_chorale')]
public function listeMembreChorale($id, Request $request): Response
{
$statut = $request->get('statut');
#Liste des membre d'une chorale
$chorale = $this->choralesRepository->findOneBy(['id'=>$id]);
if ($statut == 'actif') {
# Recupération des membres uniquement actif
$membreChorales = $this->choraleMembresRepository->findBy(['chorale'=>$chorale,'statut' => true]);
} elseif ($statut == 'inactif') {
# Recupération des membres uniquement non actif
$membreChorales = $this->choraleMembresRepository->findBy(['chorale'=>$chorale,'statut' => false]);
} else {
$membreChorales = $this->choraleMembresRepository->findBy(['chorale'=>$chorale]);
}
//dd($this->chretiensRepository->findChretienParFonction(1));
return $this->render('chorale/liste.membre.chorale.html.twig', [
'membreChorales' => $membreChorales,
// 'membreChoralesActif' => $membreChoralesActif,
// 'membreChoralesInactif' => $membreChoralesInactif,
'chorale'=>$chorale,
'urlPrecedente'=>$request->headers->get('referer')
]);
}
#[Route('/{id}/modifier-le-poste', name: 'edit_poste_chorale')]
public function editPosteChorale(Request $request): Response
{
$id = $request->get('id');
$choraleMembre = $this->choraleMembresRepository->findOneBy(['id'=>$id]);
//dd($id);
$form = $this->createForm(FormChoraleMembreType::class, $choraleMembre);
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
$this->em->persist($choraleMembre);
$this->em->flush();
return $this->redirectToRoute('liste_membre_chorale',[
'id'=>$choraleMembre->getChorale()->getId()
]);
}
//dd($choraleMembre->getPoste());
return $this->render('modals/_edit.poste.modal.html.twig', [
'entity' => $choraleMembre,
'form' => $form->createView(),
'Modal_title' => 'Choisir le nouveau poste',
'path_url' => 'edit_poste_chorale'
]);
}
#[Route('/apropos-chorale', name: 'about_chorale')]
public function choraleWeb(Request $request): Response
{
$chorales = $this->choraleMembresRepository->findAll();
//dd($choraleMembre->getPoste());
return $this->render('chorale/web-chorale.html.twig', [
'chorales' => $chorales,
]);
}
}