From 5a225926a255959937bdbeb8ad97743f64bb7f4e Mon Sep 17 00:00:00 2001 From: Rasmus Fuhse Date: Tue, 10 Mar 2026 16:02:48 +0000 Subject: =?UTF-8?q?Resolve=20"Art=20des=20Termins=20wird=20=C3=BCberschrie?= =?UTF-8?q?ben=20bei=20Stapelverarbeitung=20von=20Terminen"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Closes #6340 Merge request studip/studip!4805 (cherry picked from commit 46a45e6ef5d8700e93b3a37dc9ee0e829711fa85) abbbe1cb Re# issue-6340 f78be50c If all appointments have the same date_type, it's now shown correctly as the... 02827ba2 moved some code from view to controler db4049d1 applied suggested changes 7efd1a92 Apply 1 suggestion(s) to 1 file(s) Co-authored-by: Rasmus Fuhse --- app/controllers/course/timesrooms.php | 32 ++++++++++++++++------------- app/views/course/timesrooms/createCycle.php | 8 +++++++- 2 files changed, 25 insertions(+), 15 deletions(-) diff --git a/app/controllers/course/timesrooms.php b/app/controllers/course/timesrooms.php index 22f93a5..4a0bc78 100644 --- a/app/controllers/course/timesrooms.php +++ b/app/controllers/course/timesrooms.php @@ -1389,6 +1389,7 @@ class Course_TimesroomsController extends AuthenticatedController $this->end_semester_weeks['ende'][] = ['value' => -1, 'label' => _('Alle Semester')]; } } + $this->types = $this->cycle->dates->pluck('date_typ');; } /** @@ -1477,14 +1478,14 @@ class Course_TimesroomsController extends AuthenticatedController { $cycle = SeminarCycleDate::find($cycle_id); $start = strtotime(Request::get('start_time')); - $end = strtotime(Request::get('end_time')); + $end = strtotime(Request::get('end_time')); // Prepare Request for saving Request if ($start === false || $end === false || $start > $end) { PageLayout::postError(_('Die Zeitangaben sind nicht korrekt. Bitte überprüfen Sie diese!')); } else { - $cycle->start_time = date('H:i:00', $start); - $cycle->end_time = date('H:i:00', $end); + $cycle->start_time = date('H:i:00', $start); + $cycle->end_time = date('H:i:00', $end); } //Check the duration: @@ -1503,42 +1504,45 @@ class Course_TimesroomsController extends AuthenticatedController return; } - $cycle->weekday = Request::int('day'); + $cycle->weekday = Request::int('day'); $cycle->description = Request::get('description'); - $cycle->sws = Request::get('teacher_sws'); - $cycle->cycle = Request::get('cycle'); + $cycle->sws = Request::get('teacher_sws'); + $cycle->cycle = Request::get('cycle'); $cycle->week_offset = Request::int('startWeek'); - $cycle->end_offset = Request::int('endWeek'); + $cycle->end_offset = Request::int('endWeek'); if ($cycle->end_offset == -1) { $cycle->end_offset = NULL; } $changed_dates = 0; - if (Request::int('course_type')) { + + if (Request::get('course_type') && Request::get('course_type') !== 'default') { $changed_dates = $cycle->setSingleDateType(Request::int('course_type')); + } elseif ($cycle->isDirty()) { + $changed_dates = count($cycle->dates); } if ($changed_dates > 0 || $cycle->isDirty()) { + $cycle->chdate = time(); $cycle->store(); - if ($changed_dates > 0) { + if ($changed_dates > 0 && Request::get('course_type') !== 'default') { PageLayout::postSuccess(sprintf(ngettext( - _('Die Art des Termins wurde bei 1 Termin geändert'), - _('Die Art des Termins wurde bei %u Terminen geändert'), - $changed_dates - ), $changed_dates)); + _('Die Art des Termins wurde bei 1 Termin geändert'), + _('Die Art des Termins wurde bei %u Terminen geändert'), + $changed_dates), $changed_dates)); } else { PageLayout::postSuccess(_('Änderungen gespeichert!')); } } else { PageLayout::postInfo(_('Es wurden keine Änderungen vorgenommen')); } - $this->relocate('course/timesrooms/index'); } + /** * Deletes a cycle * diff --git a/app/views/course/timesrooms/createCycle.php b/app/views/course/timesrooms/createCycle.php index c226ab1..2ba98c7 100644 --- a/app/views/course/timesrooms/createCycle.php +++ b/app/views/course/timesrooms/createCycle.php @@ -40,8 +40,14 @@ -- cgit v1.0