feat: send season deadline summary to the office address

This commit is contained in:
fromme committed 2026-09-26 12:13:16 +02:00
1 parent cf876ed224
commit 77986776c2
2 files changed
+31 -42

No files matched your search

+9 -17
View File
@@ -7,7 +7,6 @@ use App\Config\SeasonCalendar;
use App\Email\Mailer;
use App\Entity\SeasonAssignmentTask;
use App\Repository\SeasonAssignmentTaskRepository;
use App\Repository\UserRepository;
use App\Service\Season\SeasonAssignmentLabeler;
use App\Service\Season\SeasonTaskDeadlineResolver;
use Psr\Log\LoggerInterface;
@@ -32,7 +31,6 @@ class SeasonTaskReminderService
private readonly SeasonTaskDeadlineResolver $deadlineResolver,
private readonly SeasonAssignmentLabeler $labeler,
private readonly SeasonCalendar $seasonCalendar,
private readonly UserRepository $userRepository,
private readonly Mailer $mailer,
private readonly LoggerInterface $logger,
) {
@@ -72,21 +70,15 @@ class SeasonTaskReminderService
return $message;
}
// the two roles that carry ROLE_ADMINISTRATIVE: the repository matches roles as they are
// stored on the user, and nobody is ever stored with the hierarchy-granted one
foreach ($this->userRepository->getUsersByRoles(['ROLE_TEAM_ADMIN', 'ROLE_MANAGER']) as $user) {
if (true === $user->isMuteNotifications()) {
continue;
}
$this->mailer->createAndSendEmail([
'violations' => $violations,
], [
'to' => $user->getEmail(),
'subject' => 'Fristen für Saisonunterlagen erreicht',
'template' => 'email/season_deadlines.html.twig',
]);
}
// One mail to the office mailbox instead of a copy per admin: the summary is
// office-wide, not personal, so it goes to the Mailer default (APP_DEFAULT_EMAIL_TO)
// and no 'to' is passed here.
$this->mailer->createAndSendEmail([
'violations' => $violations,
], [
'subject' => 'Fristen für Saisonunterlagen erreicht',
'template' => 'email/season_deadlines.html.twig',
]);
$message = 'Sent the season task deadline summary for '.$count.' teamers';
$this->logger->info($message);