diff --git a/src/Bundle/ChillActivityBundle/Controller/ActivityController.php b/src/Bundle/ChillActivityBundle/Controller/ActivityController.php index 6cfc106fb..ddbaf0f7f 100644 --- a/src/Bundle/ChillActivityBundle/Controller/ActivityController.php +++ b/src/Bundle/ChillActivityBundle/Controller/ActivityController.php @@ -407,6 +407,7 @@ final class ActivityController extends AbstractController if (array_key_exists('usersId', $activityData) && $activityType->getUsersVisible() > 0) { foreach ($activityData['usersId'] as $userId) { $user = $this->userRepository->find($userId); + if (null !== $user) { $entity->addUser($user); } diff --git a/src/Bundle/ChillCalendarBundle/Controller/CalendarController.php b/src/Bundle/ChillCalendarBundle/Controller/CalendarController.php index 0c748cccb..33f7ef5e2 100644 --- a/src/Bundle/ChillCalendarBundle/Controller/CalendarController.php +++ b/src/Bundle/ChillCalendarBundle/Controller/CalendarController.php @@ -309,50 +309,6 @@ class CalendarController extends AbstractController ]); } - /** - * @Route("/{_locale}/calendar/calendar/{id}/to-activity", name="chill_calendar_calendar_to_activity") - */ - public function toActivity(Request $request, Calendar $calendar): RedirectResponse - { - $personsId = array_map( - static fn (Person $p): int => $p->getId(), - $calendar->getPersons()->toArray() - ); - - $professionalsId = array_map( - static fn (ThirdParty $thirdParty): ?int => $thirdParty->getId(), - $calendar->getProfessionals()->toArray() - ); - - $usersId = array_map( - static fn (User $user): ?int => $user->getId(), - array_merge($calendar->getUsers()->toArray(), [$calendar->getMainUser()]) - ); - - $durationTime = $calendar->getEndDate()->diff($calendar->getStartDate()); - $durationTimeInMinutes = $durationTime->days * 1440 + $durationTime->h * 60 + $durationTime->i; - - $activityData = [ - 'calendarId' => $calendar->getId(), - 'personsId' => $personsId, - 'professionalsId' => $professionalsId, - 'usersId' => $usersId, - 'date' => $calendar->getStartDate()->format('Y-m-d'), - 'durationTime' => $durationTimeInMinutes, - 'location' => $calendar->getLocation() ? $calendar->getLocation()->getId() : null, - 'comment' => $calendar->getComment()->getComment(), - ]; - - return $this->redirectToRoute( - 'chill_activity_activity_new', - [ - 'accompanying_period_id' => $calendar->getAccompanyingPeriod()->getId(), - 'activityData' => $activityData, - 'returnPath' => $request->query->get('returnPath', null), - ] - ); - } - /** * Show a calendar item. * @@ -424,6 +380,50 @@ class CalendarController extends AbstractController ]); } + /** + * @Route("/{_locale}/calendar/calendar/{id}/to-activity", name="chill_calendar_calendar_to_activity") + */ + public function toActivity(Request $request, Calendar $calendar): RedirectResponse + { + $personsId = array_map( + static fn (Person $p): int => $p->getId(), + $calendar->getPersons()->toArray() + ); + + $professionalsId = array_map( + static fn (ThirdParty $thirdParty): ?int => $thirdParty->getId(), + $calendar->getProfessionals()->toArray() + ); + + $usersId = array_map( + static fn (User $user): ?int => $user->getId(), + array_merge($calendar->getUsers()->toArray(), [$calendar->getMainUser()]) + ); + + $durationTime = $calendar->getEndDate()->diff($calendar->getStartDate()); + $durationTimeInMinutes = $durationTime->days * 1440 + $durationTime->h * 60 + $durationTime->i; + + $activityData = [ + 'calendarId' => $calendar->getId(), + 'personsId' => $personsId, + 'professionalsId' => $professionalsId, + 'usersId' => $usersId, + 'date' => $calendar->getStartDate()->format('Y-m-d'), + 'durationTime' => $durationTimeInMinutes, + 'location' => $calendar->getLocation() ? $calendar->getLocation()->getId() : null, + 'comment' => $calendar->getComment()->getComment(), + ]; + + return $this->redirectToRoute( + 'chill_activity_activity_new', + [ + 'accompanying_period_id' => $calendar->getAccompanyingPeriod()->getId(), + 'activityData' => $activityData, + 'returnPath' => $request->query->get('returnPath', null), + ] + ); + } + private function buildListFilterOrder(): FilterOrderHelper { $filterOrder = $this->filterOrderHelperFactory->create(self::class); diff --git a/src/Bundle/ChillCalendarBundle/Messenger/Handler/CalendarRemoveHandler.php b/src/Bundle/ChillCalendarBundle/Messenger/Handler/CalendarRemoveHandler.php index 1b2f9a1b7..81e23e745 100644 --- a/src/Bundle/ChillCalendarBundle/Messenger/Handler/CalendarRemoveHandler.php +++ b/src/Bundle/ChillCalendarBundle/Messenger/Handler/CalendarRemoveHandler.php @@ -1,5 +1,14 @@ remoteCalendarConnector = $remoteCalendarConnector; diff --git a/src/Bundle/ChillCalendarBundle/Messenger/Message/CalendarRemovedMessage.php b/src/Bundle/ChillCalendarBundle/Messenger/Message/CalendarRemovedMessage.php index 1d8132003..2c3db661b 100644 --- a/src/Bundle/ChillCalendarBundle/Messenger/Message/CalendarRemovedMessage.php +++ b/src/Bundle/ChillCalendarBundle/Messenger/Message/CalendarRemovedMessage.php @@ -16,6 +16,8 @@ use Chill\MainBundle\Entity\User; class CalendarRemovedMessage { + private ?int $associatedCalendarRangeId = null; + private ?int $byUserId = null; private int $calendarUserId; @@ -24,8 +26,6 @@ class CalendarRemovedMessage private string $remoteId; - private ?int $associatedCalendarRangeId = null; - public function __construct(Calendar $calendar, ?User $byUser) { $this->remoteId = $calendar->getRemoteId(); @@ -41,6 +41,11 @@ class CalendarRemovedMessage } } + public function getAssociatedCalendarRangeId(): ?int + { + return $this->associatedCalendarRangeId; + } + public function getByUserId(): ?int { return $this->byUserId; @@ -60,14 +65,4 @@ class CalendarRemovedMessage { return $this->remoteId; } - - /** - * @return int|null - */ - public function getAssociatedCalendarRangeId(): ?int - { - return $this->associatedCalendarRangeId; - } - - } diff --git a/src/Bundle/ChillCalendarBundle/RemoteCalendar/Connector/MSGraphRemoteCalendarConnector.php b/src/Bundle/ChillCalendarBundle/RemoteCalendar/Connector/MSGraphRemoteCalendarConnector.php index 8ad0bf516..fb81de14b 100644 --- a/src/Bundle/ChillCalendarBundle/RemoteCalendar/Connector/MSGraphRemoteCalendarConnector.php +++ b/src/Bundle/ChillCalendarBundle/RemoteCalendar/Connector/MSGraphRemoteCalendarConnector.php @@ -149,7 +149,6 @@ class MSGraphRemoteCalendarConnector implements RemoteCalendarConnectorInterface } } - public function removeCalendarRange(string $remoteId, array $remoteAttributes, User $user): void { if ('' === $remoteId) { diff --git a/src/Bundle/ChillCalendarBundle/RemoteCalendar/Connector/NullRemoteCalendarConnector.php b/src/Bundle/ChillCalendarBundle/RemoteCalendar/Connector/NullRemoteCalendarConnector.php index 2a006b6e9..1f163e569 100644 --- a/src/Bundle/ChillCalendarBundle/RemoteCalendar/Connector/NullRemoteCalendarConnector.php +++ b/src/Bundle/ChillCalendarBundle/RemoteCalendar/Connector/NullRemoteCalendarConnector.php @@ -40,7 +40,6 @@ class NullRemoteCalendarConnector implements RemoteCalendarConnectorInterface { } - public function removeCalendarRange(string $remoteId, array $remoteAttributes, User $user): void { } diff --git a/src/Bundle/ChillCalendarBundle/RemoteCalendar/Connector/RemoteCalendarConnectorInterface.php b/src/Bundle/ChillCalendarBundle/RemoteCalendar/Connector/RemoteCalendarConnectorInterface.php index cf7903beb..625607d40 100644 --- a/src/Bundle/ChillCalendarBundle/RemoteCalendar/Connector/RemoteCalendarConnectorInterface.php +++ b/src/Bundle/ChillCalendarBundle/RemoteCalendar/Connector/RemoteCalendarConnectorInterface.php @@ -39,10 +39,10 @@ interface RemoteCalendarConnectorInterface */ public function listEventsForUser(User $user, DateTimeImmutable $startDate, DateTimeImmutable $endDate): array; - public function removeCalendarRange(string $remoteId, array $remoteAttributes, User $user): void; - public function removeCalendar(string $remoteId, array $remoteAttributes, User $user, ?CalendarRange $associatedCalendarRange = null): void; + public function removeCalendarRange(string $remoteId, array $remoteAttributes, User $user): void; + /** * @param array $oldInvites */