diff options
| author | Rasmus Fuhse <fuhse@data-quest.de> | 2022-12-16 13:13:32 +0000 |
|---|---|---|
| committer | Rasmus Fuhse <fuhse@data-quest.de> | 2022-12-16 13:13:32 +0000 |
| commit | 653fcaba5a06b8098f9bdb98c051c35a567a4513 (patch) | |
| tree | 4c0cb47566019bbab09401b7287ef188322239b5 /lib/models/QuestionnaireQuestion.php | |
| parent | f127f0fb49c0f687f80588e0e1008e95be37d6ce (diff) | |
Resolve "Evaluationen mit Fragebögen"
Closes #703
Merge request studip/studip!363
Diffstat (limited to 'lib/models/QuestionnaireQuestion.php')
| -rw-r--r-- | lib/models/QuestionnaireQuestion.php | 25 |
1 files changed, 2 insertions, 23 deletions
diff --git a/lib/models/QuestionnaireQuestion.php b/lib/models/QuestionnaireQuestion.php index 93c3279..1e37340 100644 --- a/lib/models/QuestionnaireQuestion.php +++ b/lib/models/QuestionnaireQuestion.php @@ -17,11 +17,7 @@ class QuestionnaireQuestion extends SimpleORMap 'on_delete' => 'delete', 'on_store' => 'store' ]; - $config['belongs_to']['etask'] = [ - 'class_name' => \eTask\Task::class, - 'foreign_key' => 'etask_task_id' - ]; - + $config['serialized_fields']['questiondata'] = 'JSONArrayObject'; parent::configure($config); } @@ -38,24 +34,7 @@ class QuestionnaireQuestion extends SimpleORMap $data = $statement->fetchAll(); $questions = []; foreach ($data as $questionnaire_data) { - - if (!$task = Task::find($questionnaire_data['etask_task_id'])) { - continue; - } - - $class = $task->type; - - if ($class === 'multiple-choice') { - $totalScore = array_reduce( - isset($task->task['answers']) ? $task->task['answers']->getArrayCopy() : [], - function ($totalScore, $answer) { - return $totalScore + intval($answer['score'] ?: 0); - }, - 0 - ); - $class = $totalScore === 0 ? 'Vote' : 'Test'; - } - + $class = $questionnaire_data['questiontype']; if (class_exists(ucfirst($class))) { $questions[] = $class::buildExisting($questionnaire_data); } |
