MOBILE-2743 quiz: Fix first option selected when checking answer

main
Dani Palou 2018-11-26 12:07:23 +01:00
parent 601508aefc
commit 090da23300
2 changed files with 10 additions and 8 deletions

View File

@ -166,14 +166,17 @@ export class AddonModQuizPlayerPage implements OnInit, OnDestroy {
behaviourButtonClicked(button: any): void { behaviourButtonClicked(button: any): void {
// Confirm that the user really wants to do it. // Confirm that the user really wants to do it.
this.domUtils.showConfirm(this.translate.instant('core.areyousure')).then(() => { this.domUtils.showConfirm(this.translate.instant('core.areyousure')).then(() => {
const modal = this.domUtils.showModalLoading('core.sending', true), const modal = this.domUtils.showModalLoading('core.sending', true);
answers = this.getAnswers();
// Add the clicked button data. // Get the answers.
answers[button.name] = button.value; return this.prepareAnswers().then((answers) => {
// Behaviour checks are always in online. // Add the clicked button data.
return this.quizProvider.processAttempt(this.quiz, this.attempt, answers, this.preflightData).then(() => { answers[button.name] = button.value;
// Behaviour checks are always in online.
return this.quizProvider.processAttempt(this.quiz, this.attempt, answers, this.preflightData);
}).then(() => {
this.reloadNavigaton = true; // Data sent to server, navigation should be reloaded. this.reloadNavigaton = true; // Data sent to server, navigation should be reloaded.
// Reload the current page. // Reload the current page.

View File

@ -163,10 +163,9 @@ export class AddonQtypeMultichoiceHandler implements CoreQuestionHandler {
*/ */
prepareAnswers(question: any, answers: any, offline: boolean, siteId?: string): void | Promise<any> { prepareAnswers(question: any, answers: any, offline: boolean, siteId?: string): void | Promise<any> {
if (question && !question.multi && typeof answers[question.optionsName] != 'undefined' && !answers[question.optionsName]) { if (question && !question.multi && typeof answers[question.optionsName] != 'undefined' && !answers[question.optionsName]) {
/* It's a single choice and the user hasn't answered. Delete the answer and its sequencecheck because /* It's a single choice and the user hasn't answered. Delete the answer because
sending an empty string (default value) will mark the first option as selected. */ sending an empty string (default value) will mark the first option as selected. */
delete answers[question.optionsName]; delete answers[question.optionsName];
delete answers[question.optionsName.replace('answer', ':sequencecheck')];
} }
} }
} }