move data sorting to begin

This commit is contained in:
msquare 2016-12-28 14:53:35 +01:00
parent 6c4bb0da31
commit 4407604793
3 changed files with 28 additions and 24 deletions

View File

@ -43,13 +43,11 @@ function room_controller() {
$shiftsFilterRenderer = new ShiftsFilterRenderer($shiftsFilter);
$shiftsFilterRenderer->enableDaySelection($days);
$shifts = Shifts_by_ShiftsFilter($shiftsFilter);
$needed_angeltypes = NeededAngeltypes_by_ShiftsFilter($shiftsFilter);
$shift_entries = ShiftEntries_by_ShiftsFilter($shiftsFilter);
$shiftCalendarRenderer = shiftCalendarRendererByShiftFilter($shiftsFilter);
return [
$room['Name'],
Room_view($room, $shiftsFilterRenderer, new ShiftCalendarRenderer($shifts, $needed_angeltypes, $shift_entries, $shiftsFilter))
Room_view($room, $shiftsFilterRenderer, $shiftCalendarRenderer)
];
}

View File

@ -1,4 +1,6 @@
<?php
use Engelsystem\ShiftsFilter;
use Engelsystem\ShiftCalendarRenderer;
/**
* Route user actions.
@ -313,4 +315,27 @@ function load_user() {
return $user;
}
function shiftCalendarRendererByShiftFilter(ShiftsFilter $shiftsFilter) {
$shifts = Shifts_by_ShiftsFilter($shiftsFilter);
$needed_angeltypes_source = NeededAngeltypes_by_ShiftsFilter($shiftsFilter);
$shift_entries_source = ShiftEntries_by_ShiftsFilter($shiftsFilter);
$needed_angeltypes = [];
$shift_entries = [];
foreach ($shifts as $shift) {
$needed_angeltypes[$shift['SID']] = [];
$shift_entries[$shift['SID']] = [];
}
foreach ($needed_angeltypes_source as $needed_angeltype) {
$needed_angeltypes[$needed_angeltype['SID']][] = $needed_angeltype;
}
foreach ($shift_entries_source as $shift_entry) {
$shift_entries[$shift_entry['SID']][] = $shift_entry;
}
unset($needed_angeltypes_source);
unset($shift_entries_source);
return new ShiftCalendarRenderer($shifts, $needed_angeltypes, $shift_entries, $shiftsFilter);
}
?>

View File

@ -131,26 +131,7 @@ function view_user_shifts() {
update_ShiftsFilter($_SESSION['ShiftsFilter'], in_array('user_shifts_admin', $privileges), $days);
$shiftsFilter = $_SESSION['ShiftsFilter'];
$shifts = Shifts_by_ShiftsFilter($shiftsFilter);
$needed_angeltypes_source = NeededAngeltypes_by_ShiftsFilter($shiftsFilter);
$shift_entries_source = ShiftEntries_by_ShiftsFilter($shiftsFilter);
$needed_angeltypes = [];
$shift_entries = [];
foreach ($shifts as $shift) {
$needed_angeltypes[$shift['SID']] = [];
$shift_entries[$shift['SID']] = [];
}
foreach ($needed_angeltypes_source as $needed_angeltype) {
$needed_angeltypes[$needed_angeltype['SID']][] = $needed_angeltype;
}
foreach ($shift_entries_source as $shift_entry) {
$shift_entries[$shift_entry['SID']][] = $shift_entry;
}
unset($needed_angeltypes_source);
unset($shift_entries_source);
$shiftCalendarRenderer = new ShiftCalendarRenderer($shifts, $needed_angeltypes, $shift_entries, $shiftsFilter);
$shiftCalendarRenderer = shiftCalendarRendererByShiftFilter($shiftsFilter);
if ($user['api_key'] == "") {
User_reset_api_key($user, false);