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
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');
}
......
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