wip: improved validation and feedback

This commit is contained in:
Björn Fromme
2025-10-23 08:50:45 +02:00
parent 9c716477aa
commit 60176d19f4
8 changed files with 36 additions and 176 deletions
@@ -7,7 +7,6 @@ namespace App\Controller\Booking\Create;
use App\Controller\Booking\Traits\BookingCreateTrait;
use App\Controller\Booking\Traits\BookingExceptionHandlerTrait;
use App\Controller\Booking\Traits\ParticipantCardFlowTrait;
use App\Controller\Booking\Traits\ParticipantValidationTrait;
use App\Form\BookingCreateStep2Type;
use App\Form\Model\BookingDto;
use App\Form\Model\ParticipantDto;
@@ -35,7 +34,6 @@ class Step2Controller extends AbstractController
use BookingExceptionHandlerTrait;
use HxTrait;
use ParticipantCardFlowTrait;
use ParticipantValidationTrait;
public function __construct(
private readonly BookingService $bookingService,
@@ -82,7 +80,7 @@ class Step2Controller extends AbstractController
// Create validation form
$form = $this->createForm(BookingCreateStep2Type::class, $bookingCreateDto, [
'validation_groups' => ['booking_create_step_2'],
'validation_groups' => ['booking_create'],
]);
$form->handleRequest($request);
@@ -96,15 +94,6 @@ class Step2Controller extends AbstractController
return $this->hxRedirect($request, $this->generateUrl('app_booking_create_step_3'));
}
// Extract participant validation errors
$participantErrorIndices = [];
$participantErrorMessages = [];
if (true === $form->isSubmitted() && false === $form->isValid()) {
$extractedErrors = $this->extractParticipantValidationErrors($form);
$participantErrorIndices = $extractedErrors['errorIndices'];
$participantErrorMessages = $extractedErrors['errorMessages'];
}
// Generate cards data
$cardsData = $this->generateAllCardsData($bookingCreateDto);
@@ -120,8 +109,6 @@ class Step2Controller extends AbstractController
'cardsData' => $cardsData,
'summaryData' => $summaryData,
'pricingData' => $summary['pricing'],
'participantErrors' => $participantErrorIndices,
'participantErrorMessages' => $participantErrorMessages,
];
// HTMX request: render blocks only
@@ -159,7 +146,7 @@ class Step2Controller extends AbstractController
// Create form with booking_context option
$form = $this->createParticipantForm($bookingDto, $index, [
'validation_groups' => ['booking_create_step_2'],
'validation_groups' => ['booking_create'],
]);
$form->handleRequest($request);