From 45aa64ba1452c23a48a17d4f1a77a06f1124066a Mon Sep 17 00:00:00 2001 From: Jan Szejko Date: Fri, 28 Jul 2017 10:33:09 +0200 Subject: [PATCH] new format of cwiczenie wybor --- catalogue/static/catalogue/js/edumed.js | 56 +++++++++++-------------- lib/librarian | 2 +- 2 files changed, 25 insertions(+), 33 deletions(-) diff --git a/catalogue/static/catalogue/js/edumed.js b/catalogue/static/catalogue/js/edumed.js index 68a558b..ec1eabc 100644 --- a/catalogue/static/catalogue/js/edumed.js +++ b/catalogue/static/catalogue/js/edumed.js @@ -238,35 +238,35 @@ } Wybor.prototype.check_question = function(question) { - var all, bad, good, solution, - _this = this; - all = 0; - good = 0; - bad = 0; - solution = this.get_value_list(question, 'solution'); + var all = 0, bad = 0, good = 0, _this = this; + var single = $(question).closest('.exercise').attr('data-subtype') === 'single'; + $(".question-piece", question).each(function(i, qpiece) { - var is_checked, piece_name, piece_no, should_be_checked; - piece_no = $(qpiece).attr('data-no'); - piece_name = $(qpiece).attr('data-name'); - if (piece_name) { - should_be_checked = solution.indexOf(piece_name) >= 0; - } else { - should_be_checked = solution.indexOf(piece_no) >= 0; - } + var is_checked, should_be_checked; + should_be_checked = $(qpiece).attr('data-sol') === 'prawda'; is_checked = $("input", qpiece).is(":checked"); - if (should_be_checked) { + if (!single || should_be_checked) all += 1; - } - if (is_checked) { - if (should_be_checked) { - good += 1; - return _this.piece_correct(qpiece); + if (single) { + if (is_checked) { + if (should_be_checked) { + good += 1; + return _this.piece_correct(qpiece); + } else { + bad += 1; + return _this.piece_incorrect(qpiece); + } } else { + return $(qpiece).removeClass("correct,incorrect"); + } + } else { + if (is_checked !== should_be_checked) { bad += 1; return _this.piece_incorrect(qpiece); + } else { + good += 1; + return _this.piece_correct(qpiece); } - } else { - return $(qpiece).removeClass("correct,incorrect"); } }); return [good, bad, all]; @@ -275,17 +275,9 @@ Wybor.prototype.solve_question = function(question) { var solution, _this = this; - solution = this.get_value_list(question, 'solution'); return $(".question-piece", question).each(function(i, qpiece) { - var piece_name, piece_no, should_be_checked; - piece_no = $(qpiece).attr('data-no'); - piece_name = $(qpiece).attr('data-name'); - if (piece_name) { - should_be_checked = solution.indexOf(piece_name) >= 0; - } else { - should_be_checked = solution.indexOf(piece_no) >= 0; - } - console.log("check " + $("input[type=checkbox]", qpiece).attr("id") + " -> " + should_be_checked); + var should_be_checked; + should_be_checked = $(qpiece).attr('data-sol') === 'prawda'; return $("input[type=checkbox],input[type=radio]", qpiece).prop('checked', should_be_checked); }); }; diff --git a/lib/librarian b/lib/librarian index e797b32..6c528bc 160000 --- a/lib/librarian +++ b/lib/librarian @@ -1 +1 @@ -Subproject commit e797b32fa517a05d15fbd3c15a30d8c615500fd6 +Subproject commit 6c528bcbd5a184387bbb30500b67caef8a21889d -- 2.20.1