set administration sortie and delete administration city

This commit is contained in:
jleroy2023
2024-11-25 11:29:27 +01:00
parent cb01a159bc
commit 732587fa84
4 changed files with 85 additions and 188 deletions

View File

@@ -8,6 +8,7 @@ use App\Entity\Site;
use App\Entity\Ville;
use App\Repository\ParticipantRepository;
use App\Repository\SiteRepository;
use App\Repository\SortieRepository;
use App\Repository\VilleRepository;
use Doctrine\Common\Collections\Collection;
use Doctrine\ORM\EntityManagerInterface;
@@ -278,68 +279,6 @@ class AdminController extends AbstractController
return $response;
}
//Gestion des villes
#[Route('/admin/city', name: 'app_adminCity')]
public function adminCity(VilleRepository $villeRepository, TokenStorageInterface $tokenStorage): Response
{
$token = $tokenStorage->getToken();
$userConnect = $token?->getUser();
return $this->render('admin/city.html.twig', [
'profile' => $userConnect,
'citys' => $villeRepository->findAll(),
'controller_name' => 'AdminController',
]);
}
#[Route('/admin/city/add', name: 'app_adminCityAdd', methods: ['POST'])]
public function adminCityAdd(Request $request, EntityManagerInterface $entityManager): Response
{
try {
// Récupérer les données envoyées par le formulaire
$postalCode = $request->request->get('postalCode');
$cityName = $request->request->get('citySelect');
// Vérifier que les champs ne sont pas vides
if (!$postalCode || !$cityName) {
return new Response('Tous les champs sont requis.', Response::HTTP_BAD_REQUEST);
}
// Créer une nouvelle entité City et définir ses propriétés
$city = new Ville();
$city->setNom($cityName);
$city->setCodePostal($postalCode);
// Enregistrer la ville dans la base de données
$entityManager->persist($city);
$entityManager->flush();
$this->addFlash('success', "Ville ajouté !");
return $this->redirectToRoute('app_adminCity');
} catch(\Exception $e) {
$this->addFlash('error', "Erreur : " . $e->getMessage());
return $this->redirectToRoute('app_adminCity');
}
}
#[Route('/admin/city/delete/{id}', name: 'app_adminCityDelete')]
public function adminCityDelete(string $id, VilleRepository $villeRepository, EntityManagerInterface $entityManager): RedirectResponse
{
// Récupérer la ville à supprimer
$city = $villeRepository->find($id);
// Vérifier si la ville existe
if (!$city) {
// Si la ville n'existe pas, rediriger avec un message d'erreur
$this->addFlash('error', 'La ville demandée n\'existe pas.');
return $this->redirectToRoute('app_adminCity'); // Rediriger vers la liste des villes
}
// Supprimer la ville
$entityManager->remove($city);
$entityManager->flush();
// Ajouter un message de succès et rediriger vers la liste des villes
$this->addFlash('success', 'Ville supprimée avec succès.');
return $this->redirectToRoute('app_adminCity');
}
//Gestion des sites
#[Route('/admin/site', name: 'app_adminSite')]
public function adminSite(SiteRepository $siteRepository, TokenStorageInterface $tokenStorage): Response
@@ -446,4 +385,17 @@ class AdminController extends AbstractController
return $this->redirectToRoute('home');
}
}
#[Route('/admin/sortie', name: 'app_adminSortie')]
public function sortie(TokenStorageInterface $tokenStorage, SortieRepository $sortieRepository): Response
{
$token = $tokenStorage->getToken();
$userConnect = $token?->getUser();
return $this->render('admin/sortie.html.twig', [
'profile' => $userConnect,
'controller_name' => 'AdminController',
'sorties' => $sortieRepository->findAll(),
]);
}
}