Skip to content

Commit 658469e

Browse files
committed
Exercise: Prevent showing any "open" answer type in adaptative tests, as we need immediate feedback to be feasible - refs #6195
1 parent cb59270 commit 658469e

File tree

2 files changed

+41
-3
lines changed

2 files changed

+41
-3
lines changed

public/main/exercise/question.class.php

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1551,11 +1551,29 @@ public static function displayTypeMenu(Exercise $objExercise)
15511551
// Add all other non-open question types.
15521552
$allTypes = self::getQuestionTypeList();
15531553

1554-
// The task explicitly mentions NOT including free-answer questions.
1555-
// So we only exclude FREE_ANSWER here.
1554+
// Exclude the classic open question types from the filter list
1555+
// as the system cannot provide immediate feedback on these.
15561556
if (isset($allTypes[FREE_ANSWER])) {
15571557
unset($allTypes[FREE_ANSWER]);
15581558
}
1559+
if (isset($allTypes[ORAL_EXPRESSION])) {
1560+
unset($allTypes[ORAL_EXPRESSION]);
1561+
}
1562+
if (isset($allTypes[ANNOTATION])) {
1563+
unset($allTypes[ANNOTATION]);
1564+
}
1565+
if (isset($allTypes[MULTIPLE_ANSWER_TRUE_FALSE_DEGREE_CERTAINTY])) {
1566+
unset($allTypes[MULTIPLE_ANSWER_TRUE_FALSE_DEGREE_CERTAINTY]);
1567+
}
1568+
if (isset($allTypes[UPLOAD_ANSWER])) {
1569+
unset($allTypes[UPLOAD_ANSWER]);
1570+
}
1571+
if (isset($allTypes[ANSWER_IN_OFFICE_DOC])) {
1572+
unset($allTypes[ANSWER_IN_OFFICE_DOC]);
1573+
}
1574+
if (isset($allTypes[PAGE_BREAK])) {
1575+
unset($allTypes[PAGE_BREAK]);
1576+
}
15591577

15601578
// Append remaining types, without overriding the original ones.
15611579
foreach ($allTypes as $typeId => $def) {

public/main/exercise/question_pool.php

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -445,10 +445,30 @@ function confirm_your_choice() {
445445
// Start from all known types.
446446
$allTypes = $question_list;
447447

448-
// Exclude the classic open question type from the filter list.
448+
// Exclude the classic open question types from the filter list
449+
// as the system cannot provide immediate feedback on these.
449450
if (isset($allTypes[FREE_ANSWER])) {
450451
unset($allTypes[FREE_ANSWER]);
451452
}
453+
if (isset($allTypes[ORAL_EXPRESSION])) {
454+
unset($allTypes[ORAL_EXPRESSION]);
455+
}
456+
if (isset($allTypes[ANNOTATION])) {
457+
unset($allTypes[ANNOTATION]);
458+
}
459+
if (isset($allTypes[MULTIPLE_ANSWER_TRUE_FALSE_DEGREE_CERTAINTY])) {
460+
unset($allTypes[MULTIPLE_ANSWER_TRUE_FALSE_DEGREE_CERTAINTY]);
461+
}
462+
if (isset($allTypes[UPLOAD_ANSWER])) {
463+
unset($allTypes[UPLOAD_ANSWER]);
464+
}
465+
if (isset($allTypes[ANSWER_IN_OFFICE_DOC])) {
466+
unset($allTypes[ANSWER_IN_OFFICE_DOC]);
467+
}
468+
if (isset($allTypes[PAGE_BREAK])) {
469+
unset($allTypes[PAGE_BREAK]);
470+
}
471+
452472

453473
// Append remaining non-open types (do not override base ones).
454474
foreach ($allTypes as $key => $item) {

0 commit comments

Comments
 (0)