Merge remote-tracking branch 'upstream/master' into matra-22057

pull/5831/head
christianbeeznst 10 months ago
commit 9cbcca1998
  1. 6
      public/main/inc/lib/usermanager.lib.php
  2. 59
      src/CoreBundle/Command/SendEventRemindersCommand.php

@ -517,9 +517,9 @@ class UserManager
$emailBody,
$sender_name,
$email_admin,
null,
null,
null,
[],
[],
false,
[],
$creatorEmail
);

@ -47,8 +47,7 @@ class SendEventRemindersCommand extends Command
$this
->setDescription('Send notification messages to users that have reminders from events in their agenda.')
->addOption('debug', null, InputOption::VALUE_NONE, 'Enable debug mode')
->setHelp('This command sends notifications to users who have pending reminders for calendar events.')
;
->setHelp('This command sends notifications to users who have pending reminders for calendar events.');
}
protected function execute(InputInterface $input, OutputInterface $output): int
@ -94,30 +93,20 @@ class SendEventRemindersCommand extends Command
}
$eventDetails = $this->generateEventDetails($event);
$messageSubject = \sprintf('Reminder for event: %s', $event->getTitle());
$messageContent = implode(PHP_EOL, $eventDetails);
$initialSentRemindersCount = $sentRemindersCount;
if ('personal' === $eventType) {
$creator = $event->getResourceNode()->getCreator();
if ($creator) {
$this->messageHelper->sendMessageSimple($creator->getId(), $messageSubject, $messageContent, $senderId);
if ($debug) {
error_log("Message sent to creator ID: {$creator->getId()} for personal event: ".$event->getTitle());
}
$sentRemindersCount++;
$this->sendReminderMessage($creator, $event, $senderId, $debug, $io, $sentRemindersCount);
}
$resourceLinks = $event->getResourceNode()->getResourceLinks();
if (!$resourceLinks->isEmpty()) {
foreach ($resourceLinks as $link) {
if ($user = $link->getUser()) {
$this->messageHelper->sendMessageSimple($user->getId(), $messageSubject, $messageContent, $senderId);
if ($debug) {
error_log("Message sent to user ID: {$user->getId()} for personal event: ".$event->getTitle());
}
$sentRemindersCount++;
$this->sendReminderMessage($user, $event, $senderId, $debug, $io, $sentRemindersCount);
}
}
}
@ -135,25 +124,16 @@ class SendEventRemindersCommand extends Command
case 'global':
foreach ($event->getResourceNode()->getResourceLinks() as $link) {
if ($user = $link->getUser()) {
$this->messageHelper->sendMessageSimple($user->getId(), $messageSubject, $messageContent, $senderId);
if ($debug) {
error_log("Message sent to user ID: {$user->getId()} for global event: ".$event->getTitle());
}
$sentRemindersCount++;
$this->sendReminderMessage($user, $event, $senderId, $debug, $io, $sentRemindersCount);
}
}
break;
case 'course':
if ($course = $resourceLink->getCourse()) {
$users = $this->courseRepository->getSubscribedUsers($course)->getQuery()->getResult();
foreach ($users as $user) {
$this->messageHelper->sendMessageSimple($user->getId(), $messageSubject, $messageContent, $senderId);
if ($debug) {
error_log("Message sent to user ID: {$user->getId()} for course event: ".$event->getTitle());
}
$sentRemindersCount++;
$this->sendReminderMessage($user, $event, $senderId, $debug, $io, $sentRemindersCount);
}
}
@ -186,11 +166,7 @@ class SendEventRemindersCommand extends Command
}
foreach ($usersToNotify as $user) {
$this->messageHelper->sendMessageSimple($user->getId(), $messageSubject, $messageContent, $senderId);
if ($debug) {
error_log("Message sent to user ID: {$user->getId()} ({$user->getUsername()}) for session event: {$event->getTitle()}");
}
$sentRemindersCount++;
$this->sendReminderMessage($user, $event, $senderId, $debug, $io, $sentRemindersCount);
}
}
@ -215,6 +191,25 @@ class SendEventRemindersCommand extends Command
return Command::SUCCESS;
}
private function sendReminderMessage(User $user, CCalendarEvent $event, int $senderId, bool $debug, SymfonyStyle $io, int &$sentRemindersCount): void
{
$locale = $user->getLocale() ?: 'en';
$this->translator->setLocale($locale);
$messageSubject = $this->translator->trans('Reminder for event : %s', ['%s' => $event->getTitle()]);
$messageContent = implode(PHP_EOL, $this->generateEventDetails($event));
$this->messageHelper->sendMessageSimple($user->getId(), $messageSubject, $messageContent, $senderId);
if ($debug) {
error_log("Message sent to user ID: {$user->getId()} for event: {$event->getTitle()}");
error_log("Message Subject: {$messageSubject}");
error_log("Message Content: {$messageContent}");
}
$sentRemindersCount++;
}
private function getFirstAdminId(): int
{
$admin = $this->entityManager->getRepository(User::class)->findOneBy([]);
@ -234,13 +229,13 @@ class SendEventRemindersCommand extends Command
} else {
$details[] = \sprintf(
'<p class="small">%s</p>',
\sprintf($this->translator->trans('From %s'), $event->getStartDate()->format('Y-m-d H:i:s'))
$this->translator->trans('From %s', ['%s' => $event->getStartDate()->format('Y-m-d H:i:s')])
);
if ($event->getEndDate()) {
$details[] = \sprintf(
'<p class="small">%s</p>',
\sprintf($this->translator->trans('Until %s'), $event->getEndDate()->format('Y-m-d H:i:s'))
$this->translator->trans('Until %s', ['%s' => $event->getEndDate()->format('Y-m-d H:i:s')])
);
}
}

Loading…
Cancel
Save