src/Controller/DefaultController.php line 24

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use App\Entity\Utilisateur;
  4. use App\Entity\CompteRendu;
  5. use App\Form\CompteRenduType;
  6. use App\Repository\DateRepository;
  7. use App\Repository\CompteRenduRepository;
  8. use App\Repository\PartenaireRepository;
  9. use Symfony\Component\HttpFoundation\Request;
  10. use Symfony\Component\HttpFoundation\Response;
  11. use Symfony\Component\Routing\Annotation\Route;
  12. use Symfony\Component\String\Slugger\SluggerInterface;
  13. use Symfony\Component\Filesystem\Exception\IOExceptionInterface;
  14. use Symfony\Component\Filesystem\Filesystem;
  15. use Symfony\Component\Filesystem\Path;
  16. use Symfony\Component\HttpFoundation\File\File;
  17. class DefaultController extends BaseController
  18. {
  19. /**
  20. * @Route("/", name="default_homepage")
  21. */
  22. public function index(
  23. DateRepository $dateRepository): Response {
  24. return $this->render('default/index.html.twig', [
  25. 'loggedUtilisateur' => $this->getUser(),
  26. 'dates' => $dateRepository->findAllOrder(),
  27. ]);
  28. }
  29. /**
  30. * @Route("/amicale", name="amicale")
  31. */
  32. public function amicale(CompteRenduRepository $compterenduRepository,
  33. Request $request): Response {
  34. return $this->render('default/amicale.html.twig', [
  35. 'loggedUtilisateur' => $this->getUser(),
  36. 'compterendus' => $compterenduRepository->findAllOrder(),
  37. ]);
  38. }
  39. /**
  40. * @Route("/amicale/ajouter-compte-rendu", name="amicale_add_compterendu")
  41. */
  42. public function administration_date_new(CompteRenduRepository $compterenduRepository,
  43. Request $request,
  44. SluggerInterface $slugger): Response
  45. {
  46. $currentCompteRendu = new CompteRendu();
  47. $form = $this->createForm(CompteRenduType::class, $currentCompteRendu);
  48. $form->handleRequest($request);
  49. if ($form->isSubmitted() && $form->isValid()) {
  50. $currentCompteRendu = $form->getData();
  51. $fileName = $form->get('fileName')->getData();
  52. if ($fileName) {
  53. try {
  54. $originalFilename = pathinfo($fileName->getClientOriginalName(), PATHINFO_FILENAME);
  55. $safeFilename = $slugger->slug($originalFilename);
  56. $newFilename = $safeFilename.'-'.uniqid().'.'.$fileName->guessExtension();
  57. $fileName->move('upload/amicale/CR', $newFilename);
  58. $currentCompteRendu->setFileName($newFilename);
  59. } catch (FileException $exception) {
  60. echo "An error occurred while creating file".$exception->getPath();
  61. }
  62. }
  63. $compterenduRepository->save($currentCompteRendu);
  64. return $this->redirectToRoute('manage_compterendus');
  65. }
  66. return $this->render('default/composants/_add_compterendu.html.twig', [
  67. 'loggedUtilisateur' => $this->getUser(),
  68. 'form' => $form->createView(),
  69. ]);
  70. }
  71. /**
  72. * @Route("/amicale/supprimer-compte-rendu/{id}", name="amicale_remove_compterendu")
  73. */
  74. public function amicale_remove_compterendu(?int $id,
  75. CompteRenduRepository $compterenduRepository,
  76. Request $request): Response
  77. {
  78. $filesystem = new Filesystem();
  79. try {
  80. $currentCompteRendu = $compterenduRepository->find($id);
  81. $filesystem->remove('upload/amicale/CR/'.$currentCompteRendu->getFileName());
  82. $compterenduRepository->delete($currentCompteRendu);
  83. } catch (IOExceptionInterface $exception) {
  84. echo "An error occurred while removing file ".$exception->getPath();
  85. }
  86. return $this->redirectToRoute('manage_compterendus');
  87. }
  88. /**
  89. * @Route("/partenaire", name="partenaire")
  90. */
  91. public function partenaire(PartenaireRepository $partenaireRepository): Response {
  92. return $this->render('default/partenaire.html.twig', [
  93. 'loggedUtilisateur' => $this->getUser(),
  94. 'partenaires' => $partenaireRepository->findAll(),
  95. ]);
  96. }
  97. }