diff options
| author | Jan-Hendrik Willms <tleilax+studip@gmail.com> | 2026-02-10 10:18:09 +0100 |
|---|---|---|
| committer | Jan-Hendrik Willms <tleilax+studip@gmail.com> | 2026-02-10 10:22:30 +0100 |
| commit | 3c0331c8f3b5cf96b1078aa376888972b784ed2c (patch) | |
| tree | bc43772378d80915367a70fb86e490a116363425 | |
| parent | c30fd7c83a3de7099fbaf3de45885644870154e5 (diff) | |
don't send messages for waitlist changes for course that have ended, fixes #6224
Closes #6224
Merge request studip/studip!4710
| -rw-r--r-- | lib/models/AdmissionApplication.class.php | 7 | ||||
| -rw-r--r-- | lib/models/Course.class.php | 12 |
2 files changed, 17 insertions, 2 deletions
diff --git a/lib/models/AdmissionApplication.class.php b/lib/models/AdmissionApplication.class.php index 4307716..8b1bfed 100644 --- a/lib/models/AdmissionApplication.class.php +++ b/lib/models/AdmissionApplication.class.php @@ -247,7 +247,12 @@ class AdmissionApplication extends SimpleORMap implements PrivacyObject $position = 1; foreach ($admission_users as $admission) { $admission->position = $position; - if ($admission->store() && Config::get()->NOTIFY_ON_WAITLIST_ADVANCE && $send_message) { + if ( + $admission->store() + && Config::get()->getValue('NOTIFY_ON_WAITLIST_ADVANCE') + && $send_message + && !$course->hasEnded() + ) { $username = $admission->user->username; setTempLanguage($admission->user_id); $message = sprintf(_('Sie sind auf der Warteliste der Veranstaltung **%s (%s)** hochgestuft worden. Sie stehen zur Zeit auf Position %s.'), diff --git a/lib/models/Course.class.php b/lib/models/Course.class.php index 97b246b..76a7be7 100644 --- a/lib/models/Course.class.php +++ b/lib/models/Course.class.php @@ -436,7 +436,7 @@ class Course extends SimpleORMap implements Range, PrivacyObject, StudipItem, Fe * @returns Semester|null Either the last semester of the course * or null, if no semester could be found. */ - public function getEndSemester() + public function getEndSemester(): ?Semester { if (count($this->semesters) > 0) { return $this->semesters->last(); @@ -486,6 +486,16 @@ class Course extends SimpleORMap implements Range, PrivacyObject, StudipItem, Fe } } + /** + * Returns whether the course has ended, meaning it is not open ended and + * all semesters the course takes place in are in the past. + */ + public function hasEnded(): bool + { + return !$this->isOpenEnded() + && $this->getEndSemester()->isPast(); + } + public function getTeachers() { return $this->members->filter(function ($m) { |
