diff --git a/src/Controller/SortieController.php b/src/Controller/SortieController.php index f723aa4..60d9507 100644 --- a/src/Controller/SortieController.php +++ b/src/Controller/SortieController.php @@ -110,7 +110,7 @@ class SortieController extends AbstractController $entityManager->flush(); $this->addFlash('success', 'La sortie a été créée avec succès.'); - return $this->redirectToRoute('home'); + return $this->redirectToRoute('sortie_view', ['id'=> $sortie->getIdSortie()]); } return $this->render('sortie/create.html.twig', [ @@ -136,6 +136,14 @@ class SortieController extends AbstractController return $this->redirectToRoute('home'); } +// Changer l'état si date de début commencé. + if($sortie->getDateLimiteInscription() < new DateTime()){ + $sortie->setEtat($entityManager->getRepository(Etat::class)->findOneBy(['libelle' => 'Clôturée'])); + } + if ($sortie->getDateHeureDebut() <= (new DateTime())) { + $sortie->setEtat($entityManager->getRepository(Etat::class)->findOneBy(['libelle' => 'En cours'])); + } + return $this->render('sortie/view.html.twig', [ 'sortie' => $sortie, 'profile' => $tokenStorage->getToken()?->getUser(), @@ -280,4 +288,22 @@ class SortieController extends AbstractController return $this->redirectToRoute('home'); } + #[Route('/confirm/{id}', name: 'confirm', methods: ['POST'])] + public function confirm(string $id, EntityManagerInterface $entityManager, TokenStorageInterface $tokenStorage) + { + $user = $tokenStorage->getToken()?->getUser(); + $sortie = $entityManager->getRepository(Sortie::class)->find($id); + + if (!$sortie || $sortie->getOrganisateur()->getIdParticipant() !== $user->getIdParticipant()) { + $this->addFlash('error', 'Vous n\'avez pas l\'autorisation de démarrer les inscriptions pour cette sortie.'); + return $this->redirectToRoute('sortie_view', ['id' => $id]); + } + + $sortie->setEtat($entityManager->getRepository(Etat::class)->findOneBy(['libelle' => 'Ouverte'])); + $entityManager->flush(); + + $this->addFlash('success', 'Les inscriptions sont ouvertes pour cette sortie'); + return $this->redirectToRoute('sortie_view', ['id' => $id]); + } + } diff --git a/templates/sortie/view.html.twig b/templates/sortie/view.html.twig index dc478d5..a353001 100644 --- a/templates/sortie/view.html.twig +++ b/templates/sortie/view.html.twig @@ -11,6 +11,9 @@ #delete-modal { z-index: 1050; } + #confirm-modal { + z-index: 1050; + } {% endblock %} @@ -93,18 +96,32 @@ {% endif %} - {% if app.user and app.user.idParticipant == sortie.organisateur.idParticipant and sortie.etat.libelle == 'Créée' %} + {% if app.user and app.user.idParticipant == sortie.organisateur.idParticipant %}
+ {% if sortie.etat.libelle == 'Créée' or sortie.etat.libelle == 'Ouverte'%} - - ✏️ Modifier la sortie - + {% endif %} + {% if sortie.etat.libelle == 'Créée' %} + + ✏️ Modifier la sortie + +{# #} +{# 🚀 Démarrer les inscriptions#} +{# #} + + {% endif %}
{% endif %} @@ -161,6 +178,31 @@ +{# Modale pour ouvrir les inscriptions d'une sortie#} + +
🔙 Retour à l'accueil @@ -191,16 +233,27 @@ .openPopup(); const openModalButton = document.getElementById('open-delete-modal'); + const openModalConfirm = document.getElementById('open-confirm-modal'); + const cancelModalButton = document.getElementById('cancel-modal'); + const cancelModalConfirm = document.getElementById('cancel-confirm-modal') + const deleteModal = document.getElementById('delete-modal'); + const confirmModal = document.getElementById('confirm-modal'); openModalButton?.addEventListener('click', () => { deleteModal.classList.remove('hidden'); }); - cancelModalButton?.addEventListener('click', () => { deleteModal.classList.add('hidden'); }); + + openModalConfirm?.addEventListener('click', () => { + confirmModal.classList.remove('hidden'); + }) + cancelModalConfirm?.addEventListener('click', () => { + confirmModal.classList.add('hidden') + }) }); {% endblock %}