Skip to content
Snippets Groups Projects
Commit 99170807 authored by Peter Thienel's avatar Peter Thienel
Browse files

removes duplicated events from calendar views, fixes #3795

parent ee9623ab
No related branches found
No related tags found
No related merge requests found
...@@ -217,9 +217,6 @@ class CalendarDateAssignment extends SimpleORMap implements Event ...@@ -217,9 +217,6 @@ class CalendarDateAssignment extends SimpleORMap implements Event
bool $with_declined = false bool $with_declined = false
) : array ) : array
{ {
$begin->setTime(0, 0);
$end->setTime(23, 59, 59);
$sql = "JOIN `calendar_dates` $sql = "JOIN `calendar_dates`
ON calendar_date_id = `calendar_dates`.`id` ON calendar_date_id = `calendar_dates`.`id`
WHERE WHERE
...@@ -256,11 +253,8 @@ class CalendarDateAssignment extends SimpleORMap implements Event ...@@ -256,11 +253,8 @@ class CalendarDateAssignment extends SimpleORMap implements Event
$e_end = clone $event->getEnd(); $e_end = clone $event->getEnd();
$e_expire = $event->getExpire(); $e_expire = $event->getExpire();
// duration in full days
$duration = $event->getDurationDays();
$cal_start = DateTimeImmutable::createFromMutable($m_start); $cal_start = DateTimeImmutable::createFromMutable($m_start);
$cal_end = DateTimeImmutable::createFromMutable($m_start)->setTime(23,59,59); $cal_end = DateTimeImmutable::createFromMutable($m_start);
$cal_noon = $cal_start->setTime(12, 0); $cal_noon = $cal_start->setTime(12, 0);
// single events or first event // single events or first event
if ( if (
...@@ -270,11 +264,13 @@ class CalendarDateAssignment extends SimpleORMap implements Event ...@@ -270,11 +264,13 @@ class CalendarDateAssignment extends SimpleORMap implements Event
|| ($e_end > $cal_start && $e_start <= $cal_end) || ($e_end > $cal_start && $e_start <= $cal_end)
) { ) {
// exception for first event or single event // exception for first event or single event
if (!$event->calendar_date->exceptions->findOneBy('date', $cal_start->format('Y-m-d'))) { if (!$event->calendar_date->exceptions->findOneBy('date', $cal_start->format('Y-m-d'))
$events_created = array_merge($events_created, self::createRecurrentDate($event, $cal_noon)); && !isset($events_created[$event->calendar_date->id])
&& !$event->calendar_date->repetition_type) {
$events_created[$event->calendar_date->id] = $event;
} }
} elseif ($e_expire > $cal_start) { } elseif ($e_expire > $cal_start) {
$events_created = array_merge($events_created, self::getRepetition($event, $cal_noon)); $events_created = array_merge($events_created, self::getRepetition($event, $cal_noon, true));
} }
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment