|
@@ -19,6 +19,7 @@ use App\Entity\Game;
|
|
|
use App\Entity\Event;
|
|
|
use App\Repository\GamemasterRepository;
|
|
|
use App\Repository\GameRepository;
|
|
|
+use App\Repository\PartyRequestRepository;
|
|
|
use App\Form\PartyRequestType;
|
|
|
|
|
|
final class PartyRequestController extends AbstractController
|
|
@@ -51,34 +52,46 @@ final class PartyRequestController extends AbstractController
|
|
|
$partyRequest->setRequester($user);
|
|
|
$partyRequest->setDateRequest(new \Datetime('now'));
|
|
|
|
|
|
- $form = $this->createForm(PartyRequestForm::class, $partyRequest);
|
|
|
+ $form = $this->createForm(PartyRequestType::class, $partyRequest);
|
|
|
|
|
|
// Traitement du formulaire
|
|
|
$form->handleRequest($request);
|
|
|
if ($form->isSubmitted() && $form->isValid()) {
|
|
|
+ $gamemasterSelectedId = $request->request->get('party_gamemaster');
|
|
|
+ $gamemasterSelected = $gamemasterRepository->findByStrID($gamemasterSelectedId);
|
|
|
+ $gameSelectedId = $request->request->get('party_game');
|
|
|
+ $gameSelected = $gameRepository->findByStrID($gameSelectedId);
|
|
|
+ $partyRequest->setGameChoosen($gameSelected);
|
|
|
+ $partyRequest->setGamemasterChoosen($gamemasterSelected);
|
|
|
$manager->persist($partyRequest);
|
|
|
$manager->flush();
|
|
|
|
|
|
- // Envoyer un mail
|
|
|
- // Maintenant uniquement pour avoir l'ID
|
|
|
- $email = (new TemplatedEmail())
|
|
|
- ->from(new Address($_ENV['CONTACT_EMAIL'], $_ENV['CONTACT_NAME']))
|
|
|
- ->to((string) $user->getEmail())
|
|
|
- ->subject('Votre demande pour '.$event->getName())
|
|
|
- ->htmlTemplate('party_request/request.email.html.twig')
|
|
|
- ->textTemplate('party_request/request.email.txt.twig')
|
|
|
- ->context([
|
|
|
- 'partyRequest' => $partyRequest
|
|
|
- ]);
|
|
|
- $mailer->send($email);
|
|
|
+ // @todo: peut-être envoyer un mail de confirmation ??
|
|
|
|
|
|
- $this->addFlash('danger', 'Demande enregistrée, les gestionnaires y répondront prochainement.');
|
|
|
- $this->redirectToRoute('app_main_booking', ['id' => $event.getId()]);
|
|
|
+ $this->addFlash('success', 'Demande enregistrée, les gestionnaires y répondront prochainement.');
|
|
|
+ $referer = $request->headers->get('referer');
|
|
|
+ return $this->redirect($referer);
|
|
|
}
|
|
|
|
|
|
return $this->render('party_request/_modal.request.html.twig', [
|
|
|
'form' => $form,
|
|
|
- 'partyRequest' => $partyRequest
|
|
|
+ 'partyRequest' => $partyRequest,
|
|
|
+ 'event' => $event,
|
|
|
+ 'pathController' => 'app_party_request'
|
|
|
]);
|
|
|
}
|
|
|
+
|
|
|
+ #[Route('/party/request/{id}/delete', name: 'app_party_request_delete', requirements: ['id' => Requirement::UUID_V7], methods: ['GET'])]
|
|
|
+ public function delete(?PartyRequest $partyRequest, Request $request, EntityManagerInterface $entityManager)
|
|
|
+ {
|
|
|
+ if (!$partyRequest) {
|
|
|
+ $this->addFlash('danger', 'Cette demande n\'existe pas.');
|
|
|
+ } else {
|
|
|
+ $entityManager->remove($partyRequest);
|
|
|
+ $entityManager->flush();
|
|
|
+ }
|
|
|
+
|
|
|
+ $referer = $request->headers->get('referer');
|
|
|
+ return $this->redirect($referer);
|
|
|
+ }
|
|
|
}
|