fix: exclude name and date of birth from editable fields for now
This commit is contained in:
@@ -7,6 +7,7 @@ namespace App\Form\Service;
|
|||||||
use App\BusProNet\Utility\DirectionMapper;
|
use App\BusProNet\Utility\DirectionMapper;
|
||||||
use App\Form\Model\BookingDto;
|
use App\Form\Model\BookingDto;
|
||||||
use App\Form\Service\Abstract\AbstractFieldStateProvider;
|
use App\Form\Service\Abstract\AbstractFieldStateProvider;
|
||||||
|
use App\Form\Service\Contract\FieldConditionInterface;
|
||||||
use App\Form\Service\Condition\AdditionalServicesMutabilityCondition;
|
use App\Form\Service\Condition\AdditionalServicesMutabilityCondition;
|
||||||
use App\Form\Service\Condition\AgeRangeCondition;
|
use App\Form\Service\Condition\AgeRangeCondition;
|
||||||
use App\Form\Service\Condition\BookingModeCondition;
|
use App\Form\Service\Condition\BookingModeCondition;
|
||||||
@@ -65,8 +66,26 @@ class EditFieldStateProvider extends AbstractFieldStateProvider
|
|||||||
$personalDataMutabilityCondition
|
$personalDataMutabilityCondition
|
||||||
);
|
);
|
||||||
|
|
||||||
// Core identity fields: static text if first participant in non-internal agency OR BPN indicates not mutable
|
// TODO: Remove the block below and move 'firstName', 'lastName', 'dateOfBirth' into the
|
||||||
foreach (['firstName', 'lastName', 'dateOfBirth', 'gender', 'nationality'] as $field) {
|
// 'gender'/'nationality' loop once BPN reliably handles name and date-of-birth changes for participants.
|
||||||
|
// Until then, name and DOB are always read-only for non-internal agency regardless of the BPN flag.
|
||||||
|
$corePersonalDataReadOnlyCondition = new class implements FieldConditionInterface {
|
||||||
|
public function evaluate(BookingDto $bookingDto, int $participantIndex, array $formData): bool
|
||||||
|
{
|
||||||
|
return !$bookingDto->isInternalAgencyBooking();
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getDependentFields(): array { return []; }
|
||||||
|
|
||||||
|
public function getDescription(): string { return 'Name and DOB always read-only for non-internal agency (temporary)'; }
|
||||||
|
};
|
||||||
|
foreach (['firstName', 'lastName', 'dateOfBirth'] as $field) {
|
||||||
|
$this->fieldStateConditions[$field] = ['static_text' => $corePersonalDataReadOnlyCondition];
|
||||||
|
}
|
||||||
|
// END TODO block
|
||||||
|
|
||||||
|
// Gender and nationality: static text if first participant in non-internal agency OR BPN indicates not mutable
|
||||||
|
foreach (['gender', 'nationality'] as $field) {
|
||||||
$this->fieldStateConditions[$field] = [
|
$this->fieldStateConditions[$field] = [
|
||||||
'static_text' => $personalDataHiddenCondition,
|
'static_text' => $personalDataHiddenCondition,
|
||||||
];
|
];
|
||||||
|
|||||||
Reference in New Issue
Block a user