<?php
namespace App\Controller;
use App\Entity\Utilisateur;
use App\Entity\CompteRendu;
use App\Form\CompteRenduType;
use App\Repository\DateRepository;
use App\Repository\CompteRenduRepository;
use App\Repository\PartenaireRepository;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
use Symfony\Component\String\Slugger\SluggerInterface;
use Symfony\Component\Filesystem\Exception\IOExceptionInterface;
use Symfony\Component\Filesystem\Filesystem;
use Symfony\Component\Filesystem\Path;
use Symfony\Component\HttpFoundation\File\File;
class DefaultController extends BaseController
{
/**
* @Route("/", name="default_homepage")
*/
public function index(
DateRepository $dateRepository): Response {
return $this->render('default/index.html.twig', [
'loggedUtilisateur' => $this->getUser(),
'dates' => $dateRepository->findAllOrder(),
]);
}
/**
* @Route("/amicale", name="amicale")
*/
public function amicale(CompteRenduRepository $compterenduRepository,
Request $request): Response {
return $this->render('default/amicale.html.twig', [
'loggedUtilisateur' => $this->getUser(),
'compterendus' => $compterenduRepository->findAllOrder(),
]);
}
/**
* @Route("/amicale/ajouter-compte-rendu", name="amicale_add_compterendu")
*/
public function administration_date_new(CompteRenduRepository $compterenduRepository,
Request $request,
SluggerInterface $slugger): Response
{
$currentCompteRendu = new CompteRendu();
$form = $this->createForm(CompteRenduType::class, $currentCompteRendu);
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
$currentCompteRendu = $form->getData();
$fileName = $form->get('fileName')->getData();
if ($fileName) {
try {
$originalFilename = pathinfo($fileName->getClientOriginalName(), PATHINFO_FILENAME);
$safeFilename = $slugger->slug($originalFilename);
$newFilename = $safeFilename.'-'.uniqid().'.'.$fileName->guessExtension();
$fileName->move('upload/amicale/CR', $newFilename);
$currentCompteRendu->setFileName($newFilename);
} catch (FileException $exception) {
echo "An error occurred while creating file".$exception->getPath();
}
}
$compterenduRepository->save($currentCompteRendu);
return $this->redirectToRoute('manage_compterendus');
}
return $this->render('default/composants/_add_compterendu.html.twig', [
'loggedUtilisateur' => $this->getUser(),
'form' => $form->createView(),
]);
}
/**
* @Route("/amicale/supprimer-compte-rendu/{id}", name="amicale_remove_compterendu")
*/
public function amicale_remove_compterendu(?int $id,
CompteRenduRepository $compterenduRepository,
Request $request): Response
{
$filesystem = new Filesystem();
try {
$currentCompteRendu = $compterenduRepository->find($id);
$filesystem->remove('upload/amicale/CR/'.$currentCompteRendu->getFileName());
$compterenduRepository->delete($currentCompteRendu);
} catch (IOExceptionInterface $exception) {
echo "An error occurred while removing file ".$exception->getPath();
}
return $this->redirectToRoute('manage_compterendus');
}
/**
* @Route("/partenaire", name="partenaire")
*/
public function partenaire(PartenaireRepository $partenaireRepository): Response {
return $this->render('default/partenaire.html.twig', [
'loggedUtilisateur' => $this->getUser(),
'partenaires' => $partenaireRepository->findAll(),
]);
}
}