Skip to content
Snippets Groups Projects
Commit a47a8028 authored by André Noack's avatar André Noack
Browse files

Resolve "Eintrag in die Hauptveranstaltung wird nicht vorgenommen bei...

Resolve "Eintrag in die Hauptveranstaltung wird nicht vorgenommen bei Nachrücken aus der Warteliste (ergibt Fatal error auf der Meine Veranstaltungen)"

Closes #3411

Merge request studip/studip!2318
parent ed00a0fb
No related branches found
No related tags found
No related merge requests found
...@@ -414,11 +414,7 @@ class BlubberController extends AuthenticatedController ...@@ -414,11 +414,7 @@ class BlubberController extends AuthenticatedController
$statement = DBManager::get()->prepare($query); $statement = DBManager::get()->prepare($query);
$statement->execute([$this->thread->id]); $statement->execute([$this->thread->id]);
foreach ($statement->fetchFirst() as $user_id) { foreach ($statement->fetchFirst() as $user_id) {
$member = new CourseMember(); CourseMember::insertCourseMember($course->getId(), $user_id, $user_id === $this->thread['user_id'] ? 'dozent' : 'tutor');
$member['user_id'] = $user_id;
$member['seminar_id'] = $course->getId();
$member['status'] = $user_id === $this->thread['user_id'] ? 'dozent' : 'tutor';
$member->store();
} }
$this->thread['context_type'] = 'course'; $this->thread['context_type'] = 'course';
......
...@@ -418,11 +418,7 @@ class Course_StatusgroupsController extends AuthenticatedController ...@@ -418,11 +418,7 @@ class Course_StatusgroupsController extends AuthenticatedController
foreach ($mp->getAddedUsers() as $a) { foreach ($mp->getAddedUsers() as $a) {
if (!CourseMember::exists([$this->course_id, $a])) { if (!CourseMember::exists([$this->course_id, $a])) {
$m = new CourseMember(); CourseMember::insertCourseMember($this->course_id, $a, User::find($a)->perms == 'user' ? 'user' : 'autor');
$m->seminar_id = $this->course_id;
$m->user_id = $a;
$m->status = User::find($a)->perms == 'user' ? 'user' : 'autor';
$m->store();
} }
$s = new StatusgruppeUser(); $s = new StatusgruppeUser();
......
...@@ -149,15 +149,7 @@ class AutoInsert ...@@ -149,15 +149,7 @@ class AutoInsert
private function addUser($user_id, $seminar) private function addUser($user_id, $seminar)
{ {
$course_member = new CourseMember([$seminar['Seminar_id'], $user_id]); return CourseMember::insertCourseMember($seminar['Seminar_id'], $user_id, 'autor');
$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;
} }
private function removeUser($user_id, $seminar) private function removeUser($user_id, $seminar)
......
...@@ -197,32 +197,18 @@ class AdmissionApplication extends SimpleORMap implements PrivacyObject ...@@ -197,32 +197,18 @@ class AdmissionApplication extends SimpleORMap implements PrivacyObject
"seminar_id = ? AND status = 'awaiting' ORDER BY position LIMIT {$count}", "seminar_id = ? AND status = 'awaiting' ORDER BY position LIMIT {$count}",
[$seminar_id] [$seminar_id]
); );
$log_message = 'Wurde automatisch aus der Warteliste in die Veranstaltung eingetragen.';
foreach ($memberships as $membership) { 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) { if (!$sem_preliminary) {
$course_membership = new CourseMember([$seminar_id, $membership->id]); $affected = CourseMember::insertCourseMember($seminar_id, $membership->user_id, 'autor', false, false, $log_message);
$course_membership->setData([
'status' => 'autor',
'gruppe' => $group,
]);
$affected = $course_membership->store();
NotificationCenter::postNotification('UserDidEnterCourse', $seminar->getId(), $membership->user_id);
} else { } else {
$membership->status = 'accepted'; $membership->status = 'accepted';
$affected = $membership->store(); $affected = $membership->store();
StudipLog::log('SEM_USER_ADD', $seminar->getId(), $membership->user_id,'accepted', $log_message);
} }
if ($affected > 0) { if ($affected) {
$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;
}
//User benachrichtigen //User benachrichtigen
if (($sem_preliminary || $affected > 0) && $send_message) { if ($send_message) {
setTempLanguage($membership->user_id); setTempLanguage($membership->user_id);
if (!$sem_preliminary) { 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)); $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));
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment