From 0deb02698c2b08b7c7773943dcb6944e3b654efc Mon Sep 17 00:00:00 2001 From: Viktoria Wiebe Date: Thu, 28 Apr 2022 11:50:47 +0200 Subject: tic #477 - insert link to booking plan in overlap message and fix broken getResourceLocks function in Resource class --- lib/models/resources/Resource.class.php | 8 ++-- lib/models/resources/ResourceBooking.class.php | 1 - lib/raumzeit/SingleDate.class.php | 56 +++++++++++--------------- 3 files changed, 27 insertions(+), 38 deletions(-) diff --git a/lib/models/resources/Resource.class.php b/lib/models/resources/Resource.class.php index 823fe4a..e377e3e 100644 --- a/lib/models/resources/Resource.class.php +++ b/lib/models/resources/Resource.class.php @@ -862,7 +862,7 @@ class Resource extends SimpleORMap implements StudipItem $booking->store($force_booking); } catch (ResourceBookingOverlapException $e) { if ($begin->format('Ymd') == $end->format('Ymd')) { - throw new ResourceBookingException( + throw new ResourceBookingOverlapException( sprintf( _('%1$s: Die Buchung vom %2$s bis %3$s konnte wegen Überlappungen nicht gespeichert werden: %4$s'), "id) . "'>" . $this->getFullName() . "", @@ -872,7 +872,7 @@ class Resource extends SimpleORMap implements StudipItem ) ); } else { - throw new ResourceBookingException( + throw new ResourceBookingOverlapException( sprintf( _('%1$s: Die Buchung vom %2$s bis %3$s konnte wegen Überlappungen nicht gespeichert werden: %4$s'), "id) . "'>" . $this->getFullName() . "", @@ -2791,8 +2791,8 @@ class Resource extends SimpleORMap implements StudipItem $this, [ [ - $begin->getTimestamp(), - $end->getTimestamp() + 'begin' => $begin->getTimestamp(), + 'end' => $end->getTimestamp() ] ], [2] diff --git a/lib/models/resources/ResourceBooking.class.php b/lib/models/resources/ResourceBooking.class.php index d7c1b2f..7ecf281 100644 --- a/lib/models/resources/ResourceBooking.class.php +++ b/lib/models/resources/ResourceBooking.class.php @@ -191,7 +191,6 @@ class ResourceBooking extends SimpleORMap implements PrivacyObject, Studip\Calen ); } } - $sql_params = [ 'resource_id' => $resource->id ]; diff --git a/lib/raumzeit/SingleDate.class.php b/lib/raumzeit/SingleDate.class.php index 8159b13..9e9d2af 100644 --- a/lib/raumzeit/SingleDate.class.php +++ b/lib/raumzeit/SingleDate.class.php @@ -488,6 +488,7 @@ class SingleDate $course->id, $GLOBALS['user']->id ); + $course_link = null; if ($user_has_permissions) { $course_link = URLHelper::getLink( 'dispatch.php/course/timesrooms/index', @@ -495,16 +496,17 @@ class SingleDate 'cid' => $course->id ] ); - $message .= sprintf( - _('Am %1$s von %2$s bis %3$s Uhr durch Veranstaltung %4$s') . "\n", + $planner_link = $booking->resource->getLinkForAction( + 'booking_plan', + $booking->resource->id, + ['defaultDate' => date('Y-m-d', $booking->begin)] + ); + $planner_msg = sprintf( + _('%2$s von %3$s bis %4$s'), + $planner_link, date('d.m.Y', $booking->begin), date('H:i', $booking->begin), - date('H:i', $booking->end), - sprintf( - '%2$s', - $course_link, - htmlReady($course->name) - ) + date('H:i', $booking->end) ); } else { $course_link = URLHelper::getLink( @@ -513,18 +515,23 @@ class SingleDate 'sem_id' => $course->id ] ); - $message .= sprintf( - _('Am %1$s von %2$s bis %3$s Uhr durch Veranstaltung %4$s') . "\n", + $planner_msg = sprintf( + _('%1$s von %2$s bis %3$s'), date('d.m.Y', $booking->begin), date('H:i', $booking->begin), - date('H:i', $booking->end), - sprintf( - '%2$s', - $course_link, - htmlReady($course->name) - ) + date('H:i', $booking->end) ); } + + $message .= sprintf( + _('Am %1$s Uhr durch Veranstaltung %2$s') . "\n", + $planner_msg, + sprintf( + '%2$s', + $course_link, + htmlReady($course->name) + ) + ); } else { $message .= sprintf( _('Am %1$s von %2$s bis %3$s Uhr belegt von "%4$s"') . "\n", @@ -594,23 +601,6 @@ class SingleDate $room->getResourceLocks($begin, $end) ); foreach ($overlapping_bookings as $overlapping_booking) { - $course_link = null; - if ($overlapping_booking->course) { - $user_is_lecturer = $GLOBALS['perm']->have_studip_perm( - 'dozent', - $overlapping_booking->course->id, - $GLOBALS['user']->id - ); - if ($user_is_lecturer) { - $course_link = URLHelper::getLink( - 'dispatch.php/course/timesrooms/index', - [ - 'cid' => $overlapping_booking->course->id - ] - ); - } - } - $error_message .= $this->getOverlapMessage( $overlapping_booking ); -- cgit v1.0