Allow for only one item in a bucket in questions of type "przyporzadkuj"
[edumed.git] / wtem / static / wtem / edumed.js
index f828dec..940ca54 100644 (file)
       });
     };
 
+    Exercise.prototype.get_answers = function() {
+      var answers,
+        _this = this;
+      answers = [];
+      $('.question', this.element).each(function(i, question) {
+        return answers.push(_this.get_answer(question));
+      });
+      return answers;
+    };
+
     Exercise.prototype.get_value_list = function(elem, data_key, numbers) {
       var vl;
       vl = $(elem).attr("data-" + data_key).split(/[ ,]+/).map($.trim);
       });
     };
 
+    Wybor.prototype.get_answer = function(question) {
+      var answer,
+        _this = this;
+      answer = [];
+      $('.question-piece', question).each(function(i, qpiece) {
+        var $qpiece;
+        $qpiece = $(qpiece);
+        if ($("input[type=checkbox],input[type=radio]", qpiece).is(':checked')) {
+          return answer.push($qpiece.attr('data-name'));
+        }
+      });
+      return answer;
+    };
+
     return Wybor;
 
   })(Exercise);
       return _results;
     };
 
+    Uporzadkuj.prototype.get_answer = function(question) {
+      var answer,
+        _this = this;
+      answer = [];
+      $(".question-piece", this.element).each(function(i, qpiece) {
+        return answer.push($(qpiece).attr('data-pos'));
+      });
+      return answer;
+    };
+
     return Uporzadkuj;
 
   })(Exercise);
       return d1.data("no") === d2.data("no");
     };
 
+    Przyporzadkuj.prototype.draggable_accept = function($draggable, $droppable) {
+      var dropped;
+      dropped = $droppable.closest("ul, ol").find(".draggable");
+      return (Przyporzadkuj.__super__.draggable_accept.call(this, $draggable, $droppable)) && dropped.length === 0;
+    };
+
     Przyporzadkuj.prototype.check_question = function(question) {
       var all, bad_count, count, mandatory, minimum, optional, pn, pred, qp, self, v, _i, _j, _len, _len1, _ref, _ref1;
       minimum = $(question).data("minimum");
       return _results;
     };
 
+    Przyporzadkuj.prototype.get_answer = function(question) {
+      var answer,
+        _this = this;
+      answer = {};
+      $(".predicate [data-predicate]", question).each(function(i, subjects) {
+        var predicate;
+        predicate = $(subjects).attr('data-predicate');
+        answer[predicate] = [];
+        return $('.question-piece', subjects).each(function(i, qpiece) {
+          var $qpiece;
+          $qpiece = $(qpiece);
+          return answer[predicate].push($qpiece.attr('data-id'));
+        });
+      });
+      return answer;
+    };
+
     return Przyporzadkuj;
 
   })(Exercise);
       return _results;
     };
 
+    PrawdaFalsz.prototype.get_answer = function(question) {
+      var answer,
+        _this = this;
+      answer = [];
+      $(".question-piece", this.element).each(function(i, qpiece) {
+        return answer.push($(qpiece).data('value') || '-');
+      });
+      return answer;
+    };
+
     return PrawdaFalsz;
 
   })(Exercise);