Commit dacf10553b2494add15fae2eb66a75dc847b49a0

Authored by juliotoscano
1 parent 7c8fc682

created file modalExam Js #362

exam/static/js/modalExam.js 0 → 100644
... ... @@ -0,0 +1,147 @@
  1 +
  2 +//Insert Create select with question type
  3 + var idQuestionType = 1;
  4 + $("#addQuestion").on("click", function(event){
  5 + var element =
  6 + '<div class="row form-group" id="questionType_' + idQuestionType +'">' +
  7 + '<label for="questionType" class="col-md-2 control-label">' +
  8 + '{% trans "Question Type" %}</label>' + '<div class="col-md-10">' +
  9 + '<select id="questionType'+ idQuestionType +'" class="form-control" name="option_question" onchange="showDiv (this, '+ idQuestionType +')">' +
  10 + '<option selected disabled>{% trans "Question Type" %}</option>' +
  11 + '<option value="0">{% trans "Multiple Choice" %}</option>' +
  12 + '<option value="1">{% trans "True or False" %}</option>' +
  13 + '<option value="2">{% trans "Gap Filling" %}</option>' +
  14 + '<option value="3">{% trans "Discursive Question" %}</option>' +
  15 + '</select>' +
  16 + '</div>' +
  17 + '</div>' + '<hr id="hr_'+idQuestionType+'">'
  18 + ;
  19 + if (idQuestionType == 1){
  20 + $(element).insertAfter('#buttonAddQuestion');
  21 + }else{
  22 + var idhr = '#hr_'+(idQuestionType-1);
  23 + $(element).insertAfter(idhr);
  24 + }
  25 + idQuestionType++;
  26 + })
  27 +
  28 + //Insert question choice
  29 + function showDiv (elem, questionType_id) {
  30 + if (elem.value == 0) {
  31 + var questionChoice =
  32 + '<div id="questionChoice_'+questionType_id+'">' +
  33 + '<div class="row form-group">'+
  34 + '<label for="question-name" class="col-md-2 control-label">Question</label>'+
  35 + '<div class="col-md-10">'+
  36 + '<textarea class="form-control" rows="1" id="question-name" placeholder="Wording"></textarea>'+
  37 + '</div>'+
  38 + '</div>'+
  39 + '<div class="row form-group">'+
  40 + '<label for="alternatives" class="col-md-2 control-label">Alternatives</label>'+
  41 + '<div class="col-md-10" id="radios_'+questionType_id+'">'+
  42 + '<div class="radio radio-primary form-group">'+
  43 + '<label>'+
  44 + '<input checked type="radio" name="multiple-choice" id="alternative1" value="1">'+
  45 + '<textarea class="form-control" rows="1" placeholder="Write your alternative"></textarea>'+
  46 + '</label>'+
  47 + '</div>'+
  48 + '<div class="radio radio-primary form-group">'+
  49 + '<label>'+
  50 + '<input type="radio" name="multiple-choice" id="alternative2" value="2">'+
  51 + '<textarea class="form-control" rows="1" placeholder="Write your alternative"></textarea>'+
  52 + '</label>'+
  53 + '</div>'+
  54 + '</div>'+
  55 + '</div>'+
  56 + '<div class="form-group">'+
  57 + '<button type="button" class="btn btn-raised btn-primary" id="newAlternative_'+questionType_id+'" onclick="functionNewAlternative(radios_'+questionType_id+')">New Alternative</button>'+
  58 + '</div>'+
  59 + '</div>';
  60 + } else if (elem.value == 1) {
  61 + var questionChoice =
  62 + '<div id="questionChoice_'+questionType_id+'">'+
  63 + '<div class="row form-group">'+
  64 + '<label for="question-name" class="col-md-2 control-label">Question True or False</label>'+
  65 + '<div class="col-md-10">'+
  66 + '<textarea class="form-control" rows="1" id="question-name" placeholder="Wording"></textarea>'+
  67 + '</div>'+
  68 + '</div>'+
  69 + '<div class="row form-group">'+
  70 + '<label for="alternative" class="col-md-2 control-label">Alternatives: T/F</label>'+
  71 + '<div class="col-md-10" id="radiosTF_'+questionType_id+'">'+
  72 + '<div class="radio form-group" value="1">'+
  73 + '<div class="radio">'+
  74 + '<label>'+
  75 + '<textarea class="form-control" rows="1" placeholder="Write your alternative"></textarea>'+
  76 + '</label>'+
  77 + '<label>'+
  78 + '<input type="radio" name="true-or-false-1" value="T">'+
  79 + '</label>'+
  80 + '<label>'+
  81 + '<input type="radio" name="true-or-false-1" value="F">'+
  82 + '</label>'+
  83 + '</div>'+
  84 + '</div>'+
  85 + '<div class="radio form-group" value="2">'+
  86 + '<label>'+
  87 + '<textarea class="form-control" rows="1" placeholder="Write your alternative"></textarea>'+
  88 + '</label>'+
  89 + '<label>'+
  90 + '<input type="radio" name="true-or-false-2" value="T">'+
  91 + '</label>'+
  92 + '<label>'+
  93 + '<input type="radio" name="true-or-false-2" value="F">'+
  94 + '</label>'+
  95 + '</div>'+
  96 + '</div>'+
  97 + '</div>'+
  98 + '<div class="form-group">'+
  99 + '<button type="button" class="btn btn-raised btn-primary" id="newAlternative_'+questionType_id+'" onclick="functionNewAlternativeTF(radiosTF_'+questionType_id+')">New Alternative</button>'+
  100 + '</div>'+
  101 + '</div>';
  102 + } else if (elem.value == 3) {
  103 + var questionChoice =
  104 + '<div id="questionChoice_'+questionType_id+'">'+
  105 + '<div class="row form-group">'+
  106 + '<label for="question-name" class="col-md-2 control-label">Name Question discursive</label>'+
  107 + '<div class="col-md-10">'+
  108 + '<textarea class="form-control" rows="2" id="question" placeholder="Wording"></textarea>'+
  109 + '</div>'+
  110 + '</div>'+
  111 + '</div>';
  112 + }
  113 + if(document.getElementById('questionChoice_'+ questionType_id)){
  114 + $('#questionChoice_'+ questionType_id).detach();
  115 + }
  116 + $(questionChoice).insertBefore('#hr_'+questionType_id);
  117 + $.material.init() //O material deve ser iniciado aqui para funcionar os botoes de radio.
  118 + }
  119 +//Bug quando criamos sem ser na ordem
  120 +function functionNewAlternative(Question_Id){
  121 + var alternative = parseInt($("div input").last().val()) + 1;
  122 + var element = '<div class="radio radio-primary form-group">' +
  123 + '<label>' +
  124 + '<input type="radio" name="alternatives" id="alternative_'+alternative+'_'+Question_Id+'"' + 'value="'+alternative+'">' +
  125 + '<textarea class="form-control" rows="1" placeholder="Write your alternative"></textarea>' +
  126 + '</label>'+
  127 + '</div>';
  128 + $(Question_Id).append(element);
  129 + $.material.init() //O material deve ser iniciado aqui para funcionar os botoes de radio.
  130 +}
  131 +function functionNewAlternativeTF(Question_Id){
  132 + var alternative = parseInt($("div").last().val()) + 1;
  133 + var element =
  134 + '<div class="radio form-group">'+
  135 + '<label>'+
  136 + '<textarea class="form-control" rows="1" placeholder="Write your alternative"></textarea>'+
  137 + '</label>'+
  138 + '<label>'+
  139 + '<input type="radio" name="true-or-false-2" value="T">'+
  140 + '</label>'+
  141 + '<label>'+
  142 + '<input type="radio" name="true-or-false-2" value="F">'+
  143 + '</label>'+
  144 + '</div>';
  145 + $(Question_Id).append(element);
  146 + $.material.init() //O material deve ser iniciado aqui para funcionar os botoes de radio.
  147 +}
0 148 \ No newline at end of file
... ...
exam/templates/exam/create.html
... ... @@ -4,7 +4,7 @@
4 4  
5 5 {# {% block style %} #}
6 6 <script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
7   - <script src="{% static 'js/modal_exam.js' %}"></script>
  7 + <script src="{% static 'js/modalExam.js' %}"></script>
8 8  
9 9 {# {% endblock %} #}
10 10  
... ... @@ -93,9 +93,9 @@
93 93 var id = 1;
94 94 $("#add_question").click(function(){
95 95 $.get("{% url 'course:exam:true_or_false_question' %}", function(data){
96   -
  96 +
97 97 $("#questions").append(data);
98   -
  98 +
99 99 $("#0").attr("id","true_" + id++);
100 100 });
101 101 });
... ...