diff --git a/app/controllers/course/gradebook/lecturers.php b/app/controllers/course/gradebook/lecturers.php index 2cba5f3bfc02114380f3fe814d3e387e86e803a8..b3b1f820e9e765a16d21e08f140b84a926570304 100644 --- a/app/controllers/course/gradebook/lecturers.php +++ b/app/controllers/course/gradebook/lecturers.php @@ -164,33 +164,37 @@ class Course_Gradebook_LecturersController extends AuthenticatedController public function store_grades_action() { CSRFProtection::verifyUnsafeRequest(); - $course = \Context::get(); - $studentIds = $course->getMembersWithStatus('autor', true)->pluck('user_id'); - $definitionIds = \SimpleCollection::createFromArray( - Definition::findByCourse($course) - )->pluck('id'); - - $grades = \Request::getArray('grades'); - $passed = \Request::getArray('passed'); - $feedback = \Request::getArray('feedback'); - foreach ($grades as $studentId => $studentGrades) { - if (!in_array($studentId, $studentIds)) { - continue; - } - foreach ($studentGrades as $definitionId => $strGrade) { - if (!in_array($definitionId, $definitionIds)) { + if (Request::submitted('accept')) { + $course = \Context::get(); + $studentIds = $course->getMembersWithStatus('autor', true)->pluck('user_id'); + $definitionIds = \SimpleCollection::createFromArray( + Definition::findByCourse($course) + )->pluck('id'); + + $grades = \Request::getArray('grades'); + $passed = \Request::getArray('passed'); + $feedback = \Request::getArray('feedback'); + foreach ($grades as $studentId => $studentGrades) { + if (!in_array($studentId, $studentIds)) { continue; } - - $instance = new Instance([$definitionId, $studentId]); - $instance->rawgrade = ((int) $strGrade) / 100.0; - $instance->passed = $passed[$studentId][$definitionId] ?? 0; - $instance->feedback = $feedback[$studentId][$definitionId] ?? ''; - $instance->store(); + foreach ($studentGrades as $definitionId => $strGrade) { + if (!in_array($definitionId, $definitionIds)) { + continue; + } + + $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'); }