diff --git a/src/Mealz/MealBundle/Controller/MealAdminController.php b/src/Mealz/MealBundle/Controller/MealAdminController.php index aaf26551d..14870c1f9 100644 --- a/src/Mealz/MealBundle/Controller/MealAdminController.php +++ b/src/Mealz/MealBundle/Controller/MealAdminController.php @@ -204,16 +204,17 @@ private function handleDay(array $day): void $dayEntity->setEnabled($day['enabled']); } $this->setLockParticipationForDay($dayEntity, $day); - - $eventCollection = $day['events']; - foreach ($dayEntity->getEvents() as $event) { - $this->em->remove($event); // Hier wird sichergestellt, dass die Events tatsächlich aus der Datenbank gelöscht werden. - } - $dayEntity->removeEvents(); - $this->em->flush(); // Alle Änderungen in die Datenbank schreiben. - foreach ($eventCollection as $event) { - $this->logger->info('Event '. implode($event)); - $this->handleEventArr($event, $dayEntity); + if(array_key_exists('events', $day)){ + $eventCollection = $day['events']; + foreach ($dayEntity->getEvents() as $event) { + $this->em->remove($event); // Hier wird sichergestellt, dass die Events tatsächlich aus der Datenbank gelöscht werden. + } + $dayEntity->removeEvents(); + $this->em->flush(); // Alle Änderungen in die Datenbank schreiben. + foreach ($eventCollection as $event) { + $this->logger->info('Event '. implode($event)); + $this->handleEventArr($event, $dayEntity); + } } $mealCollection = $day['meals']; diff --git a/src/Mealz/MealBundle/Message/WeeklyMenuMessage.php b/src/Mealz/MealBundle/Message/WeeklyMenuMessage.php index 199898421..f870133f9 100644 --- a/src/Mealz/MealBundle/Message/WeeklyMenuMessage.php +++ b/src/Mealz/MealBundle/Message/WeeklyMenuMessage.php @@ -44,7 +44,7 @@ public function getContent(): string ], 'messages' ); - $tableHeader = "\n|Day|Meals|\n|:-----|:-----|\n"; + $tableHeader = "\n|Day|Meals|Events|\n|:-----|:-----|\n"; $body = $this->getDishesByWeek($this->week); $footer = $this->translator->trans('week.notification.footer.default', [], 'messages'); } @@ -73,12 +73,8 @@ private function getDishesByDay(Day $day): string { $body = $day->getDateTime()->format('l') . ' | '; - if (!$day->isEnabled() || (0 === count($day->getMeals()))) { - return $body . $this->translator->trans('week.notification.content.no_meals', [], 'messages') . ' | '; - } - $dishes = []; - + $events = []; /** @var Meal $meal */ foreach ($day->getMeals() as $meal) { if ($meal->isCombinedMeal()) { @@ -94,8 +90,27 @@ private function getDishesByDay(Day $day): string $dishes[$dish->getTitleEn()] = []; } } + /** @var Event $event */ + foreach($day->getEvents() as $event){ + $events[$event->getEvent()->getTitle()] = $event->getEvent()->getTitle(); + } - return $body . $this->toString($dishes); + if (!$day->isEnabled() || (0 === count($day->getMeals()))) { + $body = $body . $this->translator->trans('week.notification.content.no_meals', [], 'messages') . ' | '; + if((0 === count($day->getEvents()))){ + return $body . $this->translator->trans('week.notification.content.no_events', [], 'messages') . ' | '; + } else{ + return $body . $this->eventsToString($events); + } + } + elseif(!$day->isEnabled() || (0 === count($day->getEvents()))) { + $body = $body . $this->toString($dishes); + return $body . $this->translator->trans('week.notification.content.no_events', [], 'messages') . ' | '; + } + else{ + $body = $body . $this->toString($dishes); + return $body . $this->eventsToString($events); + } } /** @@ -113,6 +128,18 @@ private function toString(array $dishes): string } } + return implode(', ', $result) . ' |'; + } + /** + * @param array> $events + */ + private function eventsToString(array $events): string + { + $result = []; + foreach($events as $eventTitle) { + $result[$eventTitle] = '**' . $eventTitle . '**'; + } + return implode(', ', $result) . ' |'; } } diff --git a/src/Mealz/MealBundle/Resources/translations/messages.en.yml b/src/Mealz/MealBundle/Resources/translations/messages.en.yml index 063442082..8535a36f6 100644 --- a/src/Mealz/MealBundle/Resources/translations/messages.en.yml +++ b/src/Mealz/MealBundle/Resources/translations/messages.en.yml @@ -9,6 +9,7 @@ week: default: Log into your account at https://meals.aoe.com/ to get it! content: no_meals: No offers for this day + no_events: No events on this day entity: added: '%entityName% has been added.' diff --git a/src/Resources/src/components/dashboard/EventData.vue b/src/Resources/src/components/dashboard/EventData.vue index dd6274077..4b65ea63b 100644 --- a/src/Resources/src/components/dashboard/EventData.vue +++ b/src/Resources/src/components/dashboard/EventData.vue @@ -92,6 +92,7 @@ async function handleClick(event: EventParticipation) { if (event?.isParticipating === undefined || event?.isParticipating === false) { await joinEvent(props.day.date.date, event?.participationId); event.isParticipating = true; + event.participations = event.participations +1; } else { await leaveEvent(props.day.date.date,event?.participationId); event.isParticipating = false;