Skip to content
Snippets Groups Projects
Commit 14efe428 authored by Moritz Strohm's avatar Moritz Strohm
Browse files

group calendar: prevent multiple display of dates that are assigned to...

group calendar: prevent multiple display of dates that are assigned to multiple personal calendars, fixes #3850

Closes #3850

Merge request studip/studip!2723
parent 46b7d7e7
No related branches found
No related tags found
No related merge requests found
...@@ -613,19 +613,40 @@ class Calendar_CalendarController extends AuthenticatedController ...@@ -613,19 +613,40 @@ class Calendar_CalendarController extends AuthenticatedController
$result = []; $result = [];
uasort($users, function(User $a, User $b) {
$fullname_a = $a->getFullName('no_title');
$fullname_b = $b->getFullName('no_title');
if ($fullname_a == $fullname_b) {
return 0;
}
return ($fullname_a > $fullname_b) ? 1 : -1;
});
foreach ($users as $user) { foreach ($users as $user) {
$events = CalendarDateAssignment::getEvents($begin, $end, $user->id); $events = CalendarDateAssignment::getEvents($begin, $end, $user->id);
if ($events) { if ($events) {
foreach ($events as $event) { foreach ($events as $event) {
$data = $event->toEventData(User::findCurrent()->id); $data = $event->toEventData(User::findCurrent()->id);
if (!$timeline_view) { if ($timeline_view) {
$data->title = $user->getFullName(); $result[] = $data->toFullcalendarEvent();
} else {
//Prevent duplicate entries:
$data->title = $user->getFullName('no_title');
if (array_key_exists($event->calendar_date_id, $result)) {
$result[$event->calendar_date_id]['title'] .= ', ' . $data->title;
} else {
$result[$event->calendar_date_id] = $data->toFullcalendarEvent();
}
} }
$result[] = $data->toFullcalendarEvent();
} }
} }
} }
$this->render_json($result); if ($timeline_view) {
$this->render_json($result);
} else {
//Clean up the array keys:
$this->render_json(array_values($result));
}
} }
public function add_courses_action() public function add_courses_action()
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment