diff --git a/src/API/TimesheetController.php b/src/API/TimesheetController.php index c5aaa75b..b55e057a 100644 --- a/src/API/TimesheetController.php +++ b/src/API/TimesheetController.php @@ -307,12 +307,13 @@ class TimesheetController extends BaseApiController $form = $this->createForm(TimesheetApiEditForm::class, $timesheet, [ 'include_rate' => $this->isGranted('edit_rate', $timesheet), 'include_exported' => $this->isGranted('edit_export', $timesheet), + 'include_user' => $this->isGranted('create_other_timesheet'), 'allow_begin_datetime' => $mode->canUpdateTimesWithAPI(), 'allow_end_datetime' => $mode->canUpdateTimesWithAPI(), 'date_format' => self::DATE_FORMAT, ]); - $form->submit($request->request->all()); + $form->submit($request->request->all(), false); if ($form->isValid()) { if (null === $timesheet->getEnd()) { @@ -387,6 +388,7 @@ class TimesheetController extends BaseApiController $form = $this->createForm(TimesheetApiEditForm::class, $timesheet, [ 'include_rate' => $this->isGranted('edit_rate', $timesheet), 'include_exported' => $this->isGranted('edit_export', $timesheet), + 'include_user' => $this->isGranted('edit', $timesheet), 'allow_begin_datetime' => $mode->canUpdateTimesWithAPI(), 'allow_end_datetime' => $mode->canUpdateTimesWithAPI(), 'date_format' => self::DATE_FORMAT, diff --git a/src/Form/API/TimesheetApiEditForm.php b/src/Form/API/TimesheetApiEditForm.php index 80a19cb8..9c90cce9 100644 --- a/src/Form/API/TimesheetApiEditForm.php +++ b/src/Form/API/TimesheetApiEditForm.php @@ -23,6 +23,10 @@ class TimesheetApiEditForm extends TimesheetEditForm parent::buildForm($builder, $options); $builder->remove('metaFields'); + + if ($builder->has('user')) { + $builder->get('user')->setRequired(false); + } } public function configureOptions(OptionsResolver $resolver) diff --git a/src/Form/TimesheetEditForm.php b/src/Form/TimesheetEditForm.php index b0486450..1b1662c1 100644 --- a/src/Form/TimesheetEditForm.php +++ b/src/Form/TimesheetEditForm.php @@ -225,7 +225,7 @@ class TimesheetEditForm extends AbstractType 'group_by' => null, 'query_builder' => function (ProjectRepository $repo) use ($builder, $project, $customer, $isNew) { // is there a better wa to prevent starting a record with a hidden project ? - if ($isNew && !is_object($project)) { + if ($isNew && !empty($project) && (is_int($project) || is_string($project))) { /** @var Project $project */ $project = $repo->find($project); if (null !== $project) {