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

Resolve #3718 "Gradebook meldet beim Speichern "Die Noten wurden gespeichert."...

Resolve #3718 "Gradebook meldet beim Speichern "Die Noten wurden gespeichert." obwohl nicht alle Daten prozessiert wurden"

Closes #3718

Merge request studip/studip!2589
parent a02daa90
No related branches found
No related tags found
No related merge requests found
...@@ -164,33 +164,37 @@ class Course_Gradebook_LecturersController extends AuthenticatedController ...@@ -164,33 +164,37 @@ class Course_Gradebook_LecturersController extends AuthenticatedController
public function store_grades_action() public function store_grades_action()
{ {
CSRFProtection::verifyUnsafeRequest(); CSRFProtection::verifyUnsafeRequest();
$course = \Context::get(); if (Request::submitted('accept')) {
$studentIds = $course->getMembersWithStatus('autor', true)->pluck('user_id'); $course = \Context::get();
$definitionIds = \SimpleCollection::createFromArray( $studentIds = $course->getMembersWithStatus('autor', true)->pluck('user_id');
Definition::findByCourse($course) $definitionIds = \SimpleCollection::createFromArray(
)->pluck('id'); Definition::findByCourse($course)
)->pluck('id');
$grades = \Request::getArray('grades');
$passed = \Request::getArray('passed'); $grades = \Request::getArray('grades');
$feedback = \Request::getArray('feedback'); $passed = \Request::getArray('passed');
foreach ($grades as $studentId => $studentGrades) { $feedback = \Request::getArray('feedback');
if (!in_array($studentId, $studentIds)) { foreach ($grades as $studentId => $studentGrades) {
continue; if (!in_array($studentId, $studentIds)) {
}
foreach ($studentGrades as $definitionId => $strGrade) {
if (!in_array($definitionId, $definitionIds)) {
continue; continue;
} }
foreach ($studentGrades as $definitionId => $strGrade) {
$instance = new Instance([$definitionId, $studentId]); if (!in_array($definitionId, $definitionIds)) {
$instance->rawgrade = ((int) $strGrade) / 100.0; continue;
$instance->passed = $passed[$studentId][$definitionId] ?? 0; }
$instance->feedback = $feedback[$studentId][$definitionId] ?? '';
$instance->store(); $instance = new Instance([$definitionId, $studentId]);
$instance->rawgrade = ((int)$strGrade) / 100.0;
$instance->passed = $passed[$studentId][$definitionId] ?? 0;
$instance->feedback = $feedback[$studentId][$definitionId] ?? '';
$instance->store();
}
} }
}
\PageLayout::postSuccess(_('Die Noten wurden gespeichert.')); \PageLayout::postSuccess(_('Die Noten wurden gespeichert.'));
} else {
\PageLayout::postError(_('Beim Übermitteln der Daten trat ein Fehler auf.'));
}
$this->redirect('course/gradebook/lecturers/custom_definitions'); $this->redirect('course/gradebook/lecturers/custom_definitions');
} }
......
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