|  | @@ -19,6 +19,7 @@ use App\Entity\Game;
 | 
											
												
													
														|  |  use App\Entity\Event;
 |  |  use App\Entity\Event;
 | 
											
												
													
														|  |  use App\Repository\GamemasterRepository;
 |  |  use App\Repository\GamemasterRepository;
 | 
											
												
													
														|  |  use App\Repository\GameRepository;
 |  |  use App\Repository\GameRepository;
 | 
											
												
													
														|  | 
 |  | +use App\Repository\PartyRequestRepository;
 | 
											
												
													
														|  |  use App\Form\PartyRequestType;
 |  |  use App\Form\PartyRequestType;
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |  final class PartyRequestController extends AbstractController
 |  |  final class PartyRequestController extends AbstractController
 | 
											
										
											
												
													
														|  | @@ -51,34 +52,46 @@ final class PartyRequestController extends AbstractController
 | 
											
												
													
														|  |          $partyRequest->setRequester($user);
 |  |          $partyRequest->setRequester($user);
 | 
											
												
													
														|  |          $partyRequest->setDateRequest(new \Datetime('now'));
 |  |          $partyRequest->setDateRequest(new \Datetime('now'));
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  | -        $form = $this->createForm(PartyRequestForm::class, $partyRequest);
 |  | 
 | 
											
												
													
														|  | 
 |  | +        $form = $this->createForm(PartyRequestType::class, $partyRequest);
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |          // Traitement du formulaire
 |  |          // Traitement du formulaire
 | 
											
												
													
														|  |          $form->handleRequest($request);
 |  |          $form->handleRequest($request);
 | 
											
												
													
														|  |          if ($form->isSubmitted() && $form->isValid()) {
 |  |          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->persist($partyRequest);
 | 
											
												
													
														|  |              $manager->flush();
 |  |              $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', [
 |  |          return $this->render('party_request/_modal.request.html.twig', [
 | 
											
												
													
														|  |              'form' => $form,
 |  |              '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);
 | 
											
												
													
														|  | 
 |  | +    }
 | 
											
												
													
														|  |  }
 |  |  }
 |