comment
This commit is contained in:
@@ -73,7 +73,6 @@ class LieuController extends AbstractController
|
||||
return new JsonResponse(['error' => 'Ville non trouvée'], Response::HTTP_NOT_FOUND);
|
||||
}
|
||||
|
||||
// Utilisez l'API Nominatim pour récupérer les bounds
|
||||
$params = [
|
||||
'q' => $ville->getNom(),
|
||||
'format' => 'json',
|
||||
|
||||
@@ -28,7 +28,6 @@ class SortieController extends AbstractController
|
||||
): Response {
|
||||
$sortie = new Sortie();
|
||||
|
||||
// Récupérer l'utilisateur connecté
|
||||
$token = $tokenStorage->getToken();
|
||||
$userConnect = $token?->getUser();
|
||||
|
||||
@@ -37,12 +36,10 @@ class SortieController extends AbstractController
|
||||
return $this->redirectToRoute('app_login');
|
||||
}
|
||||
|
||||
// Créer le formulaire
|
||||
$form = $this->createForm(SortieType::class, $sortie);
|
||||
$form->handleRequest($request);
|
||||
|
||||
if ($form->isSubmitted() && $form->isValid()) {
|
||||
// Récupérer l'ID du lieu depuis le formulaire
|
||||
$lieuId = $form->get('lieu')->getData();
|
||||
$lieu = $lieuRepository->find($lieuId);
|
||||
|
||||
@@ -51,10 +48,8 @@ class SortieController extends AbstractController
|
||||
return $this->redirectToRoute('sortie_create');
|
||||
}
|
||||
|
||||
// Associer le lieu à la sortie
|
||||
$sortie->setLieu($lieu);
|
||||
|
||||
// Associer le site à partir de l'utilisateur connecté
|
||||
$participant = $participantRepository->find($userConnect->getIdParticipant());
|
||||
|
||||
if (!$participant) {
|
||||
@@ -64,20 +59,16 @@ class SortieController extends AbstractController
|
||||
|
||||
$sortie->setSite($participant->getSite());
|
||||
|
||||
// Récupérer l'état "en création" avec l'ID donné
|
||||
$etat = $etatRepository->find('019349ba-38ca-7a39-93c3-62f046671525');
|
||||
if (!$etat) {
|
||||
$this->addFlash('error', 'État non trouvé.');
|
||||
return $this->redirectToRoute('sortie_create');
|
||||
}
|
||||
|
||||
// Associer l'état à la sortie
|
||||
$sortie->setEtat($etat);
|
||||
|
||||
// Associer l'organisateur à la sortie
|
||||
$sortie->setOrganisateur($participant);
|
||||
|
||||
// Sauvegarder la sortie
|
||||
$entityManager->persist($sortie);
|
||||
$entityManager->flush();
|
||||
|
||||
@@ -95,7 +86,6 @@ class SortieController extends AbstractController
|
||||
#[Route('/view/{id}', name: 'view', methods: ['GET'])]
|
||||
public function view(string $id, EntityManagerInterface $entityManager, TokenStorageInterface $tokenStorage): Response
|
||||
{
|
||||
// Récupérer l'utilisateur connecté
|
||||
$token = $tokenStorage->getToken();
|
||||
$userConnect = $token?->getUser();
|
||||
|
||||
@@ -106,7 +96,6 @@ class SortieController extends AbstractController
|
||||
return $this->redirectToRoute('home');
|
||||
}
|
||||
|
||||
// Récupérer le profil de l'utilisateur connecté
|
||||
$profile = $this->getUser();
|
||||
|
||||
return $this->render('sortie/view.html.twig', [
|
||||
@@ -118,7 +107,6 @@ class SortieController extends AbstractController
|
||||
#[Route('/inscription/{id}', name: 'inscription', methods: ['POST'])]
|
||||
public function inscription(string $id, EntityManagerInterface $entityManager, TokenStorageInterface $tokenStorage): Response
|
||||
{
|
||||
// Récupérer l'utilisateur connecté
|
||||
$token = $tokenStorage->getToken();
|
||||
$userConnect = $token?->getUser();
|
||||
|
||||
@@ -127,7 +115,6 @@ class SortieController extends AbstractController
|
||||
return $this->redirectToRoute('app_login');
|
||||
}
|
||||
|
||||
// Récupérer la sortie
|
||||
$sortie = $entityManager->getRepository(Sortie::class)->find($id);
|
||||
|
||||
if (!$sortie) {
|
||||
@@ -135,25 +122,21 @@ class SortieController extends AbstractController
|
||||
return $this->redirectToRoute('home');
|
||||
}
|
||||
|
||||
// Vérifier que la sortie est "Ouverte"
|
||||
if ($sortie->getEtat()->getLibelle() !== 'Ouverte') {
|
||||
$this->addFlash('error', 'Vous ne pouvez pas vous inscrire à cette sortie car elle n\'est pas ouverte.');
|
||||
return $this->redirectToRoute('sortie_view', ['id' => $id]);
|
||||
}
|
||||
|
||||
// Vérifier si l'utilisateur est déjà inscrit
|
||||
if ($sortie->getParticipants()->contains($userConnect)) {
|
||||
$this->addFlash('error', 'Vous êtes déjà inscrit à cette sortie.');
|
||||
return $this->redirectToRoute('sortie_view', ['id' => $id]);
|
||||
}
|
||||
|
||||
// Vérifier le nombre maximum d'inscriptions
|
||||
if ($sortie->getParticipants()->count() >= $sortie->getNbInscriptionsMax()) {
|
||||
$this->addFlash('error', 'Le nombre maximum d\'inscriptions a été atteint pour cette sortie.');
|
||||
return $this->redirectToRoute('sortie_view', ['id' => $id]);
|
||||
}
|
||||
|
||||
// Ajouter l'utilisateur à la liste des participants
|
||||
$sortie->addParticipant($userConnect);
|
||||
$entityManager->flush();
|
||||
|
||||
@@ -170,7 +153,6 @@ class SortieController extends AbstractController
|
||||
TokenStorageInterface $tokenStorage,
|
||||
LieuRepository $lieuRepository
|
||||
): Response {
|
||||
// Récupérer la sortie
|
||||
$sortie = $entityManager->getRepository(Sortie::class)->find($id);
|
||||
|
||||
if (!$sortie) {
|
||||
@@ -178,7 +160,6 @@ class SortieController extends AbstractController
|
||||
return $this->redirectToRoute('home');
|
||||
}
|
||||
|
||||
// Vérifier si l'utilisateur est l'organisateur
|
||||
$token = $tokenStorage->getToken();
|
||||
$userConnect = $token?->getUser();
|
||||
|
||||
@@ -187,12 +168,10 @@ class SortieController extends AbstractController
|
||||
return $this->redirectToRoute('home');
|
||||
}
|
||||
|
||||
// Créer le formulaire
|
||||
$form = $this->createForm(SortieType::class, $sortie);
|
||||
$form->handleRequest($request);
|
||||
|
||||
if ($form->isSubmitted() && $form->isValid()) {
|
||||
// Mettre à jour le lieu si modifié
|
||||
$lieuId = $form->get('lieu')->getData();
|
||||
$lieu = $lieuRepository->find($lieuId);
|
||||
|
||||
@@ -200,7 +179,6 @@ class SortieController extends AbstractController
|
||||
$sortie->setLieu($lieu);
|
||||
}
|
||||
|
||||
// Sauvegarder les modifications
|
||||
$entityManager->flush();
|
||||
|
||||
$this->addFlash('success', 'La sortie a été mise à jour avec succès.');
|
||||
|
||||
@@ -16,14 +16,12 @@ class VilleController extends AbstractController
|
||||
#[Route('/get-lieux/{id}', name: 'get_lieux', methods: ['GET'])]
|
||||
public function getLieux(string $id, VilleRepository $villeRepository, LieuRepository $lieuRepository): JsonResponse
|
||||
{
|
||||
// Trouve la ville correspondant à l'ID (GUID)
|
||||
$ville = $villeRepository->find($id);
|
||||
|
||||
if (!$ville) {
|
||||
return new JsonResponse(['error' => 'Ville non trouvée'], Response::HTTP_NOT_FOUND);
|
||||
}
|
||||
|
||||
// Trouve tous les lieux associés à la ville
|
||||
$lieux = $lieuRepository->findBy(['ville' => $ville]);
|
||||
$response = [];
|
||||
|
||||
|
||||
@@ -26,6 +26,6 @@ class EtatFixtures extends Fixture
|
||||
$manager->persist($etat);
|
||||
}
|
||||
|
||||
$manager->flush(); // Enregistrement en base de données
|
||||
$manager->flush();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -14,7 +14,6 @@ class LieuFixtures extends Fixture implements DependentFixtureInterface
|
||||
{
|
||||
$faker = Factory::create();
|
||||
|
||||
// Exemple : Références pour des villes déjà créées dans VilleFixtures
|
||||
$villes = [
|
||||
$this->getReference('ville_Paris'),
|
||||
$this->getReference('ville_Lyon'),
|
||||
@@ -22,13 +21,13 @@ class LieuFixtures extends Fixture implements DependentFixtureInterface
|
||||
];
|
||||
|
||||
foreach ($villes as $ville) {
|
||||
for ($i = 0; $i < 5; $i++) { // Génère 5 lieux par ville
|
||||
for ($i = 0; $i < 5; $i++) {
|
||||
$lieu = new Lieu();
|
||||
$lieu->setNom($faker->streetName());
|
||||
$lieu->setRue($faker->streetAddress());
|
||||
$lieu->setLatitude($faker->latitude());
|
||||
$lieu->setLongitude($faker->longitude());
|
||||
$lieu->setVille($ville); // Associe le lieu à une ville
|
||||
$lieu->setVille($ville);
|
||||
$manager->persist($lieu);
|
||||
}
|
||||
}
|
||||
@@ -39,7 +38,7 @@ class LieuFixtures extends Fixture implements DependentFixtureInterface
|
||||
public function getDependencies(): array
|
||||
{
|
||||
return [
|
||||
VilleFixtures::class, // Assure que VilleFixtures est chargée en premier
|
||||
VilleFixtures::class,
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
@@ -10,7 +10,6 @@ class VilleFixtures extends Fixture
|
||||
{
|
||||
public function load(ObjectManager $manager): void
|
||||
{
|
||||
// Tableau associatif contenant les noms des villes et leurs codes postaux
|
||||
$villes = [
|
||||
['nom' => 'Paris', 'codePostal' => '75000'],
|
||||
['nom' => 'Lyon', 'codePostal' => '69000'],
|
||||
@@ -23,7 +22,6 @@ class VilleFixtures extends Fixture
|
||||
$ville->setCodePostal($villeData['codePostal']); // Définit le code postal
|
||||
$manager->persist($ville);
|
||||
|
||||
// Ajoute une référence pour les fixtures de lieux
|
||||
$this->addReference('ville_' . $villeData['nom'], $ville);
|
||||
}
|
||||
|
||||
|
||||
@@ -57,7 +57,7 @@ class SortieType extends AbstractType
|
||||
->add('ville', EntityType::class, [
|
||||
'class' => Ville::class,
|
||||
'choice_label' => 'nom',
|
||||
'mapped' => false, // Non lié à l'entité Sortie
|
||||
'mapped' => false,
|
||||
'label' => 'Ville',
|
||||
'placeholder' => 'Sélectionnez une ville',
|
||||
'attr' => ['id' => 'ville-select'],
|
||||
|
||||
Reference in New Issue
Block a user