Commit 2fff21e4eddbcb79a766b618cdf6ff489e57fdd8

Authored by Miguel Barão
1 parent c68f0ced
Exists in master and in 1 other branch dev

- templates simplified using a base question and blocks for each type of answer.

@@ -130,19 +130,9 @@ class LearnHandler(BaseHandler): @@ -130,19 +130,9 @@ class LearnHandler(BaseHandler):
130 # ---------------------------------------------------------------------------- 130 # ----------------------------------------------------------------------------
131 # respond to AJAX to get a JSON question 131 # respond to AJAX to get a JSON question
132 class QuestionHandler(BaseHandler): 132 class QuestionHandler(BaseHandler):
133 - # @tornado.web.authenticated  
134 - # def get(self):  
135 - # question = self.application.learn.next_question()  
136 - # print('---> question.get')  
137 - # print(question)  
138 - # if question['type'] == 'checkbox':  
139 - # self.render('question-checkbox.html',  
140 - # question=question,  
141 - # md=md,  
142 - # )  
143 -  
144 - # else:  
145 - # self.write('Error!!!') 133 + @tornado.web.authenticated
  134 + def get(self):
  135 + self.redirect('/')
146 136
147 @tornado.web.authenticated 137 @tornado.web.authenticated
148 def post(self): 138 def post(self):
@@ -189,12 +179,6 @@ class QuestionHandler(BaseHandler): @@ -189,12 +179,6 @@ class QuestionHandler(BaseHandler):
189 'correct': correct, 179 'correct': correct,
190 }) 180 })
191 181
192 - # if question['type'] == 'checkbox':  
193 - # self.render('question-checkbox.html',  
194 - # question=question, # the dictionary with the question??  
195 - # md=md, # passes function that renders markdown to html  
196 - # )  
197 -  
198 182
199 # ---------------------------------------------------------------------------- 183 # ----------------------------------------------------------------------------
200 def main(): 184 def main():
templates/learn.html
@@ -100,7 +100,41 @@ $.fn.extend({ @@ -100,7 +100,41 @@ $.fn.extend({
100 } 100 }
101 }); 101 });
102 102
  103 +// function getCookie(name) {
  104 +// var r = document.cookie.match("\\b" + name + "=([^;]*)\\b");
  105 +// return r ? r[1] : undefined;
  106 +// }
  107 +
  108 +// jQuery.postJSON = function(url, args, callback) {
  109 +// args._xsrf = getCookie("_xsrf");
  110 +// alert(args);
  111 +// $.ajax({url: url, data: $.param(args), dataType: "text", type: "POST",
  112 +// success: function(response) {
  113 +// callback(eval("(" + response + ")"));
  114 +// }});
  115 +// }
  116 +
103 function getQuestion() { 117 function getQuestion() {
  118 + // var data = $("#question_form").serialize();
  119 + // $.postJSON('/question', data, function(response){
  120 + // $("#question_div").html(response["html"]);
  121 + // MathJax.Hub.Queue(["Typeset",MathJax.Hub,"question"]);
  122 +
  123 + // if (response["correct"]) {
  124 + // $('#question_div').animateCSS('pulse');
  125 + // }
  126 + // else {
  127 + // $('#question_div').animateCSS('shake');
  128 + // }
  129 +
  130 + // $("input:text").bind("keypress", function (e) {
  131 + // if (e.keyCode == 13) {
  132 + // e.preventDefault();
  133 + // getQuestion();
  134 + // }
  135 + // });
  136 + // });
  137 +
104 $.ajax({ 138 $.ajax({
105 type: "POST", 139 type: "POST",
106 url: "/question", 140 url: "/question",
templates/question-checkbox.html
  1 +{% extends "question.html" %}
1 {% autoescape %} 2 {% autoescape %}
2 3
3 -<div class="panel panel-default">  
4 - <div class="panel-heading">  
5 - <!-- <h3 id="title"> -->  
6 - {{ question['title'] }}  
7 - <!-- </h3> --> 4 +{% block answer %}
  5 +<fieldset data-role="controlgroup">
  6 + <div class="list-group">
  7 + {% for n,opt in enumerate(question['options']) %}
  8 + <a class="list-group-item">
  9 + <input type="checkbox" id="{{ n }}" name="answer" value="{{ n }}">
  10 + {{ opt }}
  11 + </a>
  12 + {% end %}
8 </div> 13 </div>
9 - <div class="panel-body">  
10 -  
11 - <div id="text">  
12 - {{ md(question['text']) }}  
13 - </div>  
14 -  
15 - <fieldset data-role="controlgroup">  
16 - <div class="list-group">  
17 - {% for n,opt in enumerate(question['options']) %}  
18 - <a class="list-group-item">  
19 - <input type="checkbox" id="{{ n }}" name="answer" value="{{ n }}">  
20 - {{ opt }}  
21 - </a>  
22 - {% end %}  
23 - </div>  
24 - </fieldset>  
25 - </div>  
26 -</div> 14 +</fieldset>
  15 +{% end %}
27 \ No newline at end of file 16 \ No newline at end of file
templates/question-radio.html
  1 +{% extends "question.html" %}
1 {% autoescape %} 2 {% autoescape %}
2 3
3 -<div class="panel panel-default">  
4 - <div class="panel-heading">  
5 - <!-- <h3 id="title"> -->  
6 - {{ question['title'] }}  
7 - <!-- </h3> --> 4 +{% block answer %}
  5 +<fieldset data-role="controlgroup">
  6 + <div class="list-group">
  7 + {% for n,opt in enumerate(question['options']) %}
  8 + <a class="list-group-item">
  9 + <input type="radio" id="{{ n }}" name="answer" value="{{ n }}">
  10 + {{ md(opt) }}
  11 + </a>
  12 + {% end %}
8 </div> 13 </div>
9 -  
10 - <div class="panel-body">  
11 -  
12 - <div id="text">  
13 - {{ md(question['text']) }}  
14 - </div>  
15 -  
16 - <fieldset data-role="controlgroup">  
17 - <div class="list-group">  
18 - {% for n,opt in enumerate(question['options']) %}  
19 - <a class="list-group-item">  
20 - <input type="radio" id="{{ n }}" name="answer" value="{{ n }}">  
21 - {{ md(opt) }}  
22 - </a>  
23 - {% end %}  
24 - </div>  
25 - </fieldset>  
26 -  
27 - </div>  
28 -</div>  
29 \ No newline at end of file 14 \ No newline at end of file
  15 +</fieldset>
  16 +{% end %}
30 \ No newline at end of file 17 \ No newline at end of file
templates/question-text.html
1 -{% autoescape %} 1 +{% extends "question.html" %}
2 2
3 -  
4 -<div class="panel panel-default">  
5 - <div class="panel-heading">  
6 - <!-- <h3 id="title"> -->  
7 - {{ question['title'] }}  
8 - <!-- </h3> -->  
9 - </div>  
10 -  
11 - <div class="panel-body">  
12 -  
13 - <div id="text">  
14 - {{ md(question['text']) }}  
15 - </div>  
16 -  
17 - <fieldset data-role="controlgroup">  
18 - <input type="text" class="form-control" id="answer" name="answer" value="">  
19 - </fieldset>  
20 - </div>  
21 -</div> 3 +{% block answer %}
  4 +<fieldset data-role="controlgroup">
  5 + <input type="text" class="form-control" id="answer" name="answer" value="">
  6 +</fieldset>
  7 +{% end %}
22 \ No newline at end of file 8 \ No newline at end of file
templates/question-textarea.html
  1 +{% extends "question.html" %}
1 {% autoescape %} 2 {% autoescape %}
2 3
3 -  
4 -<div class="panel panel-default">  
5 - <div class="panel-heading">  
6 - <!-- <h3 id="title"> -->  
7 - {{ question['title'] }}  
8 - <!-- </h3> -->  
9 - </div>  
10 -  
11 - <div class="panel-body">  
12 - <div id="text">  
13 - {{ md(question['text']) }}  
14 - </div>  
15 -  
16 - <textarea class="form-control" rows="{{ question['lines'] }}" name="answer"></textarea><br />  
17 - <input type="hidden" name="question_ref" value="{{ question['ref'] }}">  
18 - </div>  
19 -</div> 4 +{% block answer %}
  5 +<textarea class="form-control" rows="{{ question['lines'] }}" name="answer"></textarea><br />
  6 +<input type="hidden" name="question_ref" value="{{ question['ref'] }}">
  7 +{% end %}
20 \ No newline at end of file 8 \ No newline at end of file