aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMoritz Strohm <strohm@data-quest.de>2024-08-26 16:45:11 +0200
committerMoritz Strohm <strohm@data-quest.de>2024-09-02 11:45:08 +0200
commitb07116cb44536729ebb70e7d2e6974c7ebfd5b28 (patch)
treea3006155d3358bc6391e203f049dc7084b50c10f
parent0703fcc207059870c590e44be44c5376c472e207 (diff)
added short message in case of an overlap
-rw-r--r--app/controllers/course/timesrooms.php42
-rw-r--r--lib/models/resources/Resource.php4
2 files changed, 36 insertions, 10 deletions
diff --git a/app/controllers/course/timesrooms.php b/app/controllers/course/timesrooms.php
index de333f3..bb84a00 100644
--- a/app/controllers/course/timesrooms.php
+++ b/app/controllers/course/timesrooms.php
@@ -551,14 +551,40 @@ class Course_TimesroomsController extends AuthenticatedController
);
}
}
- PageLayout::postError(
- sprintf(
- _('Der angegebene Raum konnte für den Termin %1$s nicht gebucht werden: %2$s'),
- '<strong>' . htmlReady($termin->getFullName()) . '</strong>',
- $e->getMessage()
- ),
- $link ? [$link->render()] : []
- );
+ if ($e instanceof ResourceBookingException) {
+ PageLayout::postError(
+ sprintf(
+ _('Der angegebene Raum konnte für den Termin %1$s nicht gebucht werden: %2$s'),
+ '<strong>' . htmlReady($termin->getFullName()) . '</strong>',
+ $e->getMessage()
+ ),
+ $link ? [$link->render()] : []
+ );
+ } else {
+ //$e is a ResourceBookingOverlapException
+ if ($course instanceof Course) {
+ PageLayout::postError(
+ studip_interpolate(
+ _('Der Raum %{room_name} wird an dem Termin %{date} bereits durch die Veranstaltung %{course_name} belegt.'),
+ [
+ 'room_name' => $room->name,
+ 'date' => $termin->getFullName(),
+ 'course_name' => $course->name
+ ]
+ )
+ );
+ } else {
+ PageLayout::postError(
+ studip_interpolate(
+ _('Der Raum %{room_name} wird an dem Termin %{date} bereits durch eine andere Veranstaltung belegt.'),
+ [
+ 'room_name' => $room->name,
+ 'date' => $termin->getFullName()
+ ]
+ )
+ );
+ }
+ }
}
}
if ($failure) {
diff --git a/lib/models/resources/Resource.php b/lib/models/resources/Resource.php
index 557f736..e661ac5 100644
--- a/lib/models/resources/Resource.php
+++ b/lib/models/resources/Resource.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'),
$this->getFullName(),
@@ -874,7 +874,7 @@ class Resource extends SimpleORMap implements StudipItem
$e->getRange()
);
} 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'),
$this->getFullName(),