From dd008ac05181141f852481e0f985b2adc55ff207 Mon Sep 17 00:00:00 2001 From: David Siegfried <david.siegfried@uni-vechta.de> Date: Tue, 24 Sep 2024 18:03:10 +0000 Subject: [PATCH] prevent php-warnings in resources, fixes #4623 Closes #4623 Merge request studip/studip!3435 --- app/controllers/resources/room_request.php | 8 ++++---- app/views/course/room_requests/request_show_summary.php | 2 +- app/views/resources/booking/index.php | 3 +-- lib/models/resources/ResourceRequest.php | 6 +++--- lib/resources/RoomManager.php | 6 +++--- locale/de/LC_MAILS/close_resource_request.php | 3 ++- 6 files changed, 14 insertions(+), 14 deletions(-) diff --git a/app/controllers/resources/room_request.php b/app/controllers/resources/room_request.php index 9178b64eac6..82651995fef 100644 --- a/app/controllers/resources/room_request.php +++ b/app/controllers/resources/room_request.php @@ -1296,7 +1296,6 @@ class Resources_RoomRequestController extends AuthenticatedController } else { //If no room is selected, it cannot be declared fully available. $this->requested_room_fully_available = false; - $this->room_availability_share[$selected_room->id] = 0.0; } //Load the room groups of the current user: @@ -1452,7 +1451,8 @@ class Resources_RoomRequestController extends AuthenticatedController $deduplicated = []; foreach ($this->alternative_rooms as $room) { - if ($room->id != $this->request_resource->id + if ( + (!$this->request_resource || $room->id !== $this->request_resource->id) && !isset($deduplicated[$room->id]) ) { $deduplicated[$room->id] = $room; @@ -1556,7 +1556,7 @@ class Resources_RoomRequestController extends AuthenticatedController return; } - if ($course_date->room_booking->resource_id != $room_id) { + if ($course_date->room_booking && $course_date->room_booking->resource_id !== $room_id) { try { $booking = $room->createBooking( $this->current_user, @@ -1574,7 +1574,7 @@ class Resources_RoomRequestController extends AuthenticatedController ); if ($booking instanceof ResourceBooking) { $bookings[] = $booking; - if ($this->booked_room_infos[$room->id]) { + if (!empty($this->booked_room_infos[$room->id])) { if ($this->booked_room_infos[$room->id]['first_booking_date'] > $booking->begin) { $this->booked_room_infos[$room->id]['first_booking_date'] = $booking->begin; } diff --git a/app/views/course/room_requests/request_show_summary.php b/app/views/course/room_requests/request_show_summary.php index 732e2a4cb93..116caf8f87e 100644 --- a/app/views/course/room_requests/request_show_summary.php +++ b/app/views/course/room_requests/request_show_summary.php @@ -15,7 +15,7 @@ <label> <?= _('Ausgewählte Raumkategorie') ?> <input type="hidden" name="selected_room_id" - value="<?= htmlReady($selected_room->id) ?>"> + value="<?= htmlReady($selected_room ? $selected_room->id : '') ?>"> <br> <strong><?= htmlReady($selected_room_category->name) ?></strong> diff --git a/app/views/resources/booking/index.php b/app/views/resources/booking/index.php index fc184371cf6..27820401d39 100644 --- a/app/views/resources/booking/index.php +++ b/app/views/resources/booking/index.php @@ -121,8 +121,7 @@ <? endif ?> <? elseif ($booking->getAssignedUserType() === 'user') : ?> <? if (($booking->assigned_user->visible === 'yes') || - ($booking->assigned_user->id === $GLOBALS['user']->id) || - $user_has_user_perms) : ?> + ($booking->assigned_user->id === $GLOBALS['user']->id) || !empty($user_has_user_perms)) : ?> <h3><?= _('Gebucht für:') ?></h3> <a href="<?= URLHelper::getScriptLink( 'dispatch.php/profile', diff --git a/lib/models/resources/ResourceRequest.php b/lib/models/resources/ResourceRequest.php index fff7132adca..b5da46a6b7b 100644 --- a/lib/models/resources/ResourceRequest.php +++ b/lib/models/resources/ResourceRequest.php @@ -964,8 +964,8 @@ class ResourceRequest extends SimpleORMap implements PrivacyObject, Studip\Calen $date = CourseDate::find($appointment->appointment_id); $interval['range'] = 'CourseDate'; $interval['range_id'] = $appointment->appointment_id; - $interval['booked_room'] = $date->room_booking->resource_id; - $interval['booking_id'] = $date->room_booking->id; + $interval['booked_room'] = $date->room_booking->resource_id ?? ''; + $interval['booking_id'] = $date->room_booking->id ?? ''; $time_intervals['']['intervals'][] = $interval; } @@ -2433,7 +2433,7 @@ class ResourceRequest extends SimpleORMap implements PrivacyObject, Studip\Calen { $props = ''; foreach ($this->getPropertyData() as $name => $state) { - $props .= $name . '=' . $state . ' '; + $props .= $name . '=' . json_encode($state) . ' '; } $info['Anfrage'] = $this->getType(); $info['Status'] = $this->getStatus(); diff --git a/lib/resources/RoomManager.php b/lib/resources/RoomManager.php index 0122a48edf4..caaf8ca0536 100644 --- a/lib/resources/RoomManager.php +++ b/lib/resources/RoomManager.php @@ -667,17 +667,17 @@ class RoomManager //Furthermore we must check if only minimum or maximum are //set or if both are set. Depending on that condition, //the conditions are different. - if ($state[0] && $state[1]) { + if (!empty($state[0]) && !empty($state[1])) { //Minimum and maximum are specified: if ($room_prop_state >= $state[0] && $room_prop_state <= $state[1]) { $room_property_match++; } - } elseif ($state[0]) { + } elseif (!empty($state[0])) { //Only a minimum is given: if ($room_prop_state >= $state[0]) { $room_property_match++; } - } elseif ($state[1]) { + } elseif (!empty($state[1])) { //Only a maximum is given: if ($room_prop_state <= $state[1]) { $room_property_match++; diff --git a/locale/de/LC_MAILS/close_resource_request.php b/locale/de/LC_MAILS/close_resource_request.php index dada45f2fa7..4d31936290e 100644 --- a/locale/de/LC_MAILS/close_resource_request.php +++ b/locale/de/LC_MAILS/close_resource_request.php @@ -8,8 +8,9 @@ Lehrende Person(en): <?= $lecturer_names ?> <? endif ?> +<? if ($request->resource) : ?> Angefragter Raum: <?= $request->resource->name ?> - +<? endif ?> Gebuchte Räume: <?= $booked_rooms ?> -- GitLab