Canvas turns first answer into the correct answer even if it is incorrect;: when there are not correct answers
I believe that there is a fundamental error in an assumption made in Canvas that all questions of the types: missing_word, multiple_answers, and multiple_choice must have a correct answer and if they do not, the code turns the first answer into a "correct" answer - even though it is incorrect by using: "@answers.set_correct_if_none"
See app/models/quizzes/quiz_question/answer_parsers/
- missing_word.rb
- multiple_answers.rb
- multiple_choice.rb
This is quite a disturbing finding since it means that the system overrides the setting of the answer_weight in the answers.
https://kth.test.instructure.com:443/api/v1/courses/2139/quizzes/2476/questions
Response Body
[
{
"id": 17983,
"quiz_id": 2476,
"quiz_group_id": 1393,
"assessment_question_id": 16971,
"position": 1,
"question_name": "Q5",
"question_type": "multiple_answers_question",
"question_text": "<p>The question is xxxxx?</p>",
"points_possible": 1,
"correct_comments": "",
"incorrect_comments": "",
"neutral_comments": "",
"correct_comments_html": "",
"incorrect_comments_html": "",
"neutral_comments_html": "",
"answers": [
{
"id": 8617,
"text": "first incorrect answer",
"comments": "",
"comments_html": "",
"weight": 0
},
{
"id": 8697,
"text": "second incorrect answer",
"comments": "",
"comments_html": "",
"weight": 0
},
{
"id": 3447,
"text": "first correct answer",
"comments": "",
"comments_html": "",
"weight": 100
}
],
"variables": null,
"formulas": null,
"answer_tolerance": null,
"formula_decimal_places": null,
"matches": null,
"matching_answer_incorrect_matches": null
},
{
"id": 17984,
"quiz_id": 2476,
"quiz_group_id": 1393,
"assessment_question_id": 16972,
"position": 2,
"question_name": "Q6",
"question_type": "multiple_answers_question",
"question_text": "<p>The question is xxxxx?</p>",
"points_possible": 1,
"correct_comments": "",
"incorrect_comments": "",
"neutral_comments": "",
"correct_comments_html": "",
"incorrect_comments_html": "",
"neutral_comments_html": "",
"answers": [
{
"id": 9963,
"text": "first incorrect answer",
"comments": "",
"comments_html": "",
"weight": 100
},
{
"id": 9301,
"text": "second incorrect answer",
"comments": "",
"comments_html": "",
"weight": 0
}
],
"variables": null,
"formulas": null,
"answer_tolerance": null,
"formula_decimal_places": null,
"matches": null,
"matching_answer_incorrect_matches": null
}
]
The code that puts these two questions into the quiz is insert_multiple_answers.py Download insert_multiple_answers.py'
The resulting quiz can be found at: sandbox-ik2554-ht17-quiz-export-turning-incorrect-to-correct.zip Download sandbox-ik2554-ht17-quiz-export-turning-incorrect-to-correct.zip