$xml->addChild('logattempts', $data->get('logattempts', false) ? '1' : '0');
$xt = $xml->addChild('translations');
/** @var QuizTranslation $translation */
- $tid = $data->get('translation',1) ?? 1;
+ $tid = $data->get('translation', 1) ?? 1;
if ($tid === 'en') {
$tid = 1;
}
}
$xq->addAttribute('count', $question['count_for_score'] ? '1' : '0');
$xq->addAttribute('type', $question['type']);
+ $xq->addAttribute('min_score', $question['min_score']);
$xq->addChild('label', $question['question']);
if ($question['type'] === 'multiple') {
$xas = $xq->addChild('answers');
var type = $(this).attr('type');
var multiple = $(this).attr('multiple') == '1';
var multipleclass = multiple ? ' multiple' : '';
- var question = '<section class="question' + multipleclass + '" data-count="' + $(this).attr('count') + '" data-q="' + qn + '" data-type="' + type + '">';
+ var question = '<section class="question' + multipleclass + '" data-count="' + $(this).attr('count') + '" data-q="' + qn + '" data-min-score="' + $(this).attr('min_score') + '" data-type="' + type + '">';
question += '<div class="label"><h3>' + sprintf(getTranslation('question'), qn) + '</h3> ' + $(this).find('label').text() + '</div>';
question += '<div class="answers">';
question += '</div>';
};
if ($(this).data('type') === 'multiple') {
+ var min_score = parseInt($(this).data('min-score'));
+ if (min_score === 0) {
+ min_score = $(this).find('.answer[data-correct="1"]').length;
+ }
+ var this_score = 0;
$(this).find('.answer').each(function () {
- var correct = $(this).attr('data-correct') == '1';
- var active = $(this).hasClass('active');
- if (correct !== active) {
- ok = false;
- }
- if (active) {
+ if ($(this).hasClass('active')) {
+ var correct = $(this).attr('data-correct') == '1';
+ this_score += correct ? 1 : -1;
a.push($(this).data('a'))
}
});
+ console.log(this_score, min_score);
+ ok = this_score >= min_score;
answers.push(a);
log.anwser = a;
} else {