aboutsummaryrefslogtreecommitdiff
path: root/lib/models/QuestionnaireQuestion.php
diff options
context:
space:
mode:
authorRasmus Fuhse <fuhse@data-quest.de>2022-12-16 13:13:32 +0000
committerRasmus Fuhse <fuhse@data-quest.de>2022-12-16 13:13:32 +0000
commit653fcaba5a06b8098f9bdb98c051c35a567a4513 (patch)
tree4c0cb47566019bbab09401b7287ef188322239b5 /lib/models/QuestionnaireQuestion.php
parentf127f0fb49c0f687f80588e0e1008e95be37d6ce (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.php25
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);
}