diff --git a/app/controllers/blubber.php b/app/controllers/blubber.php index 71d89f3e12796d368e8a76c2a652c5b62fdd7707..bd86050a1e44f1a14b60e9dfef7522b04418fb32 100644 --- a/app/controllers/blubber.php +++ b/app/controllers/blubber.php @@ -414,11 +414,7 @@ class BlubberController extends AuthenticatedController $statement = DBManager::get()->prepare($query); $statement->execute([$this->thread->id]); foreach ($statement->fetchFirst() as $user_id) { - $member = new CourseMember(); - $member['user_id'] = $user_id; - $member['seminar_id'] = $course->getId(); - $member['status'] = $user_id === $this->thread['user_id'] ? 'dozent' : 'tutor'; - $member->store(); + CourseMember::insertCourseMember($course->getId(), $user_id, $user_id === $this->thread['user_id'] ? 'dozent' : 'tutor'); } $this->thread['context_type'] = 'course'; diff --git a/app/controllers/course/statusgroups.php b/app/controllers/course/statusgroups.php index 747feae6aac2e979d13a8de74fc92d08413cff20..a6f6b7223056298bac4239ea5dda7ef36773c9e7 100644 --- a/app/controllers/course/statusgroups.php +++ b/app/controllers/course/statusgroups.php @@ -418,11 +418,7 @@ class Course_StatusgroupsController extends AuthenticatedController foreach ($mp->getAddedUsers() as $a) { if (!CourseMember::exists([$this->course_id, $a])) { - $m = new CourseMember(); - $m->seminar_id = $this->course_id; - $m->user_id = $a; - $m->status = User::find($a)->perms == 'user' ? 'user' : 'autor'; - $m->store(); + CourseMember::insertCourseMember($this->course_id, $a, User::find($a)->perms == 'user' ? 'user' : 'autor'); } $s = new StatusgruppeUser(); diff --git a/lib/classes/AutoInsert.class.php b/lib/classes/AutoInsert.class.php index fd0f7bba3c0f5e25f59527196193159101289536..b2168ccfbe682ef1e1ecc25ed609c91176c8343b 100644 --- a/lib/classes/AutoInsert.class.php +++ b/lib/classes/AutoInsert.class.php @@ -149,15 +149,7 @@ class AutoInsert private function addUser($user_id, $seminar) { - $course_member = new CourseMember([$seminar['Seminar_id'], $user_id]); - $course_member->setData([ - 'Seminar_id' => $seminar['Seminar_id'], - 'user_id' => $user_id, - 'status' => 'autor', - 'gruppe' => select_group($seminar['start_time']), - ]); - - return $course_member->store() > 0; + return CourseMember::insertCourseMember($seminar['Seminar_id'], $user_id, 'autor'); } private function removeUser($user_id, $seminar) diff --git a/lib/models/AdmissionApplication.class.php b/lib/models/AdmissionApplication.class.php index 4da0c6b83a8d714183f220b4d1afc013db0fff75..5670cc4d854cdf3ac9acede2efcb3eed36544a1b 100644 --- a/lib/models/AdmissionApplication.class.php +++ b/lib/models/AdmissionApplication.class.php @@ -196,32 +196,18 @@ class AdmissionApplication extends SimpleORMap implements PrivacyObject "seminar_id = ? AND status = 'awaiting' ORDER BY position LIMIT {$count}", [$seminar_id] ); + $log_message = 'Wurde automatisch aus der Warteliste in die Veranstaltung eingetragen.'; foreach ($memberships as $membership) { - //ok, here ist the "colored-group" meant (for grouping on meine_seminare), not the grouped seminars as above! - $group = select_group($seminar->getSemesterStartTime()); if (!$sem_preliminary) { - $course_membership = new CourseMember([$seminar_id, $membership->id]); - $course_membership->setData([ - 'status' => 'autor', - 'gruppe' => $group, - ]); - $affected = $course_membership->store(); - - NotificationCenter::postNotification('UserDidEnterCourse', $seminar->getId(), $membership->user_id); + $affected = CourseMember::insertCourseMember($seminar_id, $membership->user_id, 'autor', false, false, $log_message); } else { $membership->status = 'accepted'; $affected = $membership->store(); + StudipLog::log('SEM_USER_ADD', $seminar->getId(), $membership->user_id,'accepted', $log_message); } - if ($affected > 0) { - $log_message = 'Wurde automatisch aus der Warteliste in die Veranstaltung eingetragen.'; - StudipLog::log('SEM_USER_ADD', $seminar->getId(), $membership->user_id, $sem_preliminary ? 'accepted' : 'autor', $log_message); - if (!$sem_preliminary) { - $affected = $membership->delete(); - } else { - $affected = 0; - } + if ($affected) { //User benachrichtigen - if (($sem_preliminary || $affected > 0) && $send_message) { + if ($send_message) { setTempLanguage($membership->user_id); if (!$sem_preliminary) { $message = sprintf (_('Sie sind in die Veranstaltung **%s (%s)** eingetragen worden, da für Sie ein Platz frei geworden ist. Damit sind Sie für die Teilnahme an der Veranstaltung zugelassen. Ab sofort finden Sie die Veranstaltung in der Übersicht Ihrer Veranstaltungen.'), $seminar->getName(), $seminar->getFormattedTurnus(true));