rdv: add main user in fullcalendar form

This commit is contained in:
nobohan
2021-08-18 16:51:16 +02:00
parent a70d5cc263
commit dbf72774c2
5 changed files with 45 additions and 14 deletions

View File

@@ -45,14 +45,6 @@ class CalendarType extends AbstractType
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('mainUser', EntityType::class, [
'required' => true,
'class' => User::class,
'choice_label' => function (User $entity) {
return $entity->getUsernameCanonical();
},
// TODO 'empty_data' =>
])
->add('comment', CommentType::class, [
'required' => false
])
@@ -73,6 +65,24 @@ class CalendarType extends AbstractType
])
;
$builder->add('mainUser', HiddenType::class);
$builder->get('mainUser')
->addModelTransformer(new CallbackTransformer(
function (?User $user): int {
if (NULL !== $user) {
$res = $user->getId();
} else {
$res = -1; //TODO cannot be null in any ways...
}
return $res;
},
function (?int $userId): User {
return $this->om->getRepository(user::class)->findOneBy(['id' => (int) $userId]);
}
))
;
$builder->add('startDate', HiddenType::class);
$builder->get('startDate')
->addModelTransformer(new CallbackTransformer(
@@ -149,7 +159,7 @@ class CalendarType extends AbstractType
$builder->add('calendarRange', HiddenType::class);
$builder->get('calendarRange')
->addModelTransformer(new CallbackTransformer(
function (?CalendarRange $calendarRange): int {
function (?CalendarRange $calendarRange): ?int {
if (NULL !== $calendarRange) {
$res = $calendarRange->getId();
} else {
@@ -157,8 +167,13 @@ class CalendarType extends AbstractType
}
return $res;
},
function (?string $calendarRangeId): CalendarRange {
return $this->om->getRepository(CalendarRange::class)->findOneBy(['id' => (int) $calendarRangeId]);
function (?string $calendarRangeId): ?CalendarRange {
if (NULL !== $calendarRangeId) {
$res = $this->om->getRepository(CalendarRange::class)->findOneBy(['id' => (int) $calendarRangeId]);
} else {
$res = NULL;
}
return $res;
}
))
;