Add view order button in stats, resend invitation button

- Stats tab: "Voir" button on each order linking to public order page
- Invitations tab: "Renvoyer" button to resend invitation email
- New route app_account_event_resend_invitation

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Serreau Jovann
2026-03-21 19:11:15 +01:00
parent 66ddc297b1
commit b472399878
2 changed files with 29 additions and 2 deletions

View File

@@ -773,6 +773,29 @@ class AccountController extends AbstractController
return $this->redirectToRoute('app_account_edit_event', ['id' => $event->getId(), 'tab' => 'invitations']);
}
#[Route('/mon-compte/evenement/{id}/invitation/{orderId}/renvoyer', name: 'app_account_event_resend_invitation', methods: ['POST'])]
public function resendInvitation(Event $event, int $orderId, EntityManagerInterface $em, BilletOrderService $billetOrderService): Response
{
$this->denyAccessUnlessGranted('ROLE_ORGANIZER');
/** @var User $user */
$user = $this->getUser();
if ($event->getAccount()->getId() !== $user->getId()) {
throw $this->createAccessDeniedException();
}
$order = $em->getRepository(BilletBuyer::class)->find($orderId);
if (!$order || $order->getEvent()->getId() !== $event->getId()) {
throw $this->createNotFoundException();
}
$billetOrderService->generateAndSendTickets($order);
$this->addFlash('success', 'Invitation renvoyee a '.$order->getEmail().'.');
return $this->redirectToRoute('app_account_edit_event', ['id' => $event->getId(), 'tab' => 'invitations']);
}
#[Route('/mon-compte/evenement/{id}/commande/{orderId}/annuler', name: 'app_account_event_cancel_order', methods: ['POST'])]
public function cancelOrder(Event $event, int $orderId, EntityManagerInterface $em): Response
{