diff options
| author | Moritz Strohm <strohm@data-quest.de> | 2024-08-26 16:45:11 +0200 |
|---|---|---|
| committer | Moritz Strohm <strohm@data-quest.de> | 2024-09-02 11:45:08 +0200 |
| commit | b07116cb44536729ebb70e7d2e6974c7ebfd5b28 (patch) | |
| tree | a3006155d3358bc6391e203f049dc7084b50c10f | |
| parent | 0703fcc207059870c590e44be44c5376c472e207 (diff) | |
added short message in case of an overlap
| -rw-r--r-- | app/controllers/course/timesrooms.php | 42 | ||||
| -rw-r--r-- | lib/models/resources/Resource.php | 4 |
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(), |
