|
@@ -31,16 +31,18 @@ final class PartyController extends AbstractController
|
|
|
]);
|
|
|
}
|
|
|
|
|
|
- #[Route('/party/delete/{id}', name: 'app_party_delete', requirements: ['id' => '\d+'], methods: ['GET'])]
|
|
|
+ // supprimer une partie
|
|
|
+ #[Route('/party/delete/{id}', name: 'app_party_delete', requirements: ['id' => Requirement::UUID_V7], methods: ['GET'])]
|
|
|
public function delete(?Party $party, EntityManager $manager, SlotRepository $slotRepository): Response
|
|
|
{
|
|
|
- // Seuls gestionnaires (MANAGER), admin (ADMIN)
|
|
|
+ // Seuls admin (ADMIN)
|
|
|
$user = $this->getUser();
|
|
|
- if (!in_array('ROLE_ADMIN', $roles) && !in_array('ROLE_MANAGER', $roles)) {}
|
|
|
+ if (!in_array('ROLE_ADMIN', $roles)) {}
|
|
|
|
|
|
}
|
|
|
|
|
|
- #[Route('/party/validate/{id}', name: 'app_party_delete', requirements: ['id' => '\d+'], methods: ['GET'])]
|
|
|
+ // valider une partie proposée par un MJ
|
|
|
+ #[Route('/party/validate/{id}', name: 'app_party_delete', requirements: ['id' => Requirement::UUID_V7], methods: ['GET'])]
|
|
|
public function validate(?Party $party, EntityManager $manager, SlotRepository $slotRepository): Response
|
|
|
{
|
|
|
// Seuls gestionnaires (MANAGER), admin (ADMIN)
|
|
@@ -49,6 +51,10 @@ final class PartyController extends AbstractController
|
|
|
|
|
|
}
|
|
|
|
|
|
+ // modifier une partie
|
|
|
+
|
|
|
+
|
|
|
+ // ajouter une partie
|
|
|
#[Route('/party/add/{id}', name: 'app_party_add', requirements: ['id' => '\d+'], methods: ['GET','POST'])]
|
|
|
public function add(?Slot $slot, Request $request, SlotRepository $slotRepository, GamemasterRepository $gamemasterRepository, GameRepository $gameRepository, EntityManagerInterface $manager): Response
|
|
|
{
|
|
@@ -86,29 +92,35 @@ final class PartyController extends AbstractController
|
|
|
|
|
|
$form->handleRequest($request);
|
|
|
if ($form->isSubmitted() && $form->isValid()) {
|
|
|
+
|
|
|
// Ajouter les slots séléctionnés
|
|
|
$slotsString = $request->request->get('party_slots');
|
|
|
$gamemasterSelectedId = $request->request->get('party_gamemaster');
|
|
|
$gamemasterSelected = $gamemasterRepository->findByStrID($gamemasterSelectedId);
|
|
|
$gameSelectedId = $request->request->get('party_game');
|
|
|
$gameSelected = $gameRepository->findByStrID($gameSelectedId);
|
|
|
- $new_slots = explode("|", $slotsString);
|
|
|
- foreach($new_slots as $add_this_slot) {
|
|
|
- $add_this_slot_obj = $slotRepository->findById($add_this_slot);
|
|
|
- $party->addSlot($add_this_slot_obj);
|
|
|
- }
|
|
|
- $party->setStartOn(clone $party->getSlots()[0]->getStartOn());
|
|
|
- $party->setEndOn(clone $party->getSlots()->last()->getEndOn());
|
|
|
|
|
|
+ if ($gameSelected && $gamemasterSelected) {
|
|
|
+ $new_slots = explode("|", $slotsString);
|
|
|
+ foreach($new_slots as $add_this_slot) {
|
|
|
+ $add_this_slot_obj = $slotRepository->findById($add_this_slot);
|
|
|
+ $party->addSlot($add_this_slot_obj);
|
|
|
+ }
|
|
|
+ $party->setStartOn(clone $party->getSlots()[0]->getStartOn());
|
|
|
+ $party->setEndOn(clone $party->getSlots()->last()->getEndOn());
|
|
|
|
|
|
|
|
|
- $party->setGamemaster($gamemasterSelected);
|
|
|
- $party->setGame($gameSelected);
|
|
|
|
|
|
- $manager->persist($party);
|
|
|
- $manager->flush();
|
|
|
+ $party->setGamemaster($gamemasterSelected);
|
|
|
+ $party->setGame($gameSelected);
|
|
|
|
|
|
- $this->addFlash('success', 'Partie ajoutée au planning');
|
|
|
+ $manager->persist($party);
|
|
|
+ $manager->flush();
|
|
|
+
|
|
|
+ $this->addFlash('success', 'Partie ajoutée au planning.');
|
|
|
+ } else {
|
|
|
+ $this->addFlash('danger', 'Pas de MJ ou de jeu sélectionné.');
|
|
|
+ }
|
|
|
return $this->redirectToRoute('app_main'); // @todo: à modifier !
|
|
|
|
|
|
}
|