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.

serve.py
... ... @@ -130,19 +130,9 @@ class LearnHandler(BaseHandler):
130 130 # ----------------------------------------------------------------------------
131 131 # respond to AJAX to get a JSON question
132 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 137 @tornado.web.authenticated
148 138 def post(self):
... ... @@ -189,12 +179,6 @@ class QuestionHandler(BaseHandler):
189 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 184 def main():
... ...
templates/learn.html
... ... @@ -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 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 138 $.ajax({
105 139 type: "POST",
106 140 url: "/question",
... ...
templates/question-checkbox.html
  1 +{% extends "question.html" %}
1 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 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 16 \ No newline at end of file
... ...
templates/question-radio.html
  1 +{% extends "question.html" %}
1 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 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 14 \ No newline at end of file
  15 +</fieldset>
  16 +{% end %}
30 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 8 \ No newline at end of file
... ...
templates/question-textarea.html
  1 +{% extends "question.html" %}
1 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 8 \ No newline at end of file
... ...