Commit dd4d2655298c9805ebdf26f2af33d6ac0a257385

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

- number of stars now depends on the proportion of correct answers.

1 1
2 # BUGS 2 # BUGS
3 3
  4 +- change password modal nao aparece no ipad (safari e firefox)
4 - on start topic, logs show questionhandler.get() twice. 5 - on start topic, logs show questionhandler.get() twice.
5 - generators e correct scripts que durem muito tempo podem bloquear o loop do tornado? 6 - generators e correct scripts que durem muito tempo podem bloquear o loop do tornado?
6 - detect questions in questions.yaml without ref -> error ou generate default. 7 - detect questions in questions.yaml without ref -> error ou generate default.
@@ -29,6 +30,7 @@ @@ -29,6 +30,7 @@
29 30
30 # FIXED 31 # FIXED
31 32
  33 +- numero de estrelas depende da proporcao entre certas e erradas.
32 - image brand da universidade está esbatida. 34 - image brand da universidade está esbatida.
33 - reportar comentarios após submeter. 35 - reportar comentarios após submeter.
34 - error if demo.yaml has no topics 36 - error if demo.yaml has no topics
@@ -89,6 +89,8 @@ class StudentKnowledge(object): @@ -89,6 +89,8 @@ class StudentKnowledge(object):
89 factory = self.deps.node[topic]['factory'] 89 factory = self.deps.node[topic]['factory']
90 questionlist = self.deps.node[topic]['questions'] 90 questionlist = self.deps.node[topic]['questions']
91 91
  92 + self.correct_answers = 0
  93 + self.wrong_answers = 0
92 self.finished_questions = [] 94 self.finished_questions = []
93 self.questions = [factory[qref].generate() for qref in questionlist] 95 self.questions = [factory[qref].generate() for qref in questionlist]
94 logger.debug(f'Total: {len(self.questions)} questions') 96 logger.debug(f'Total: {len(self.questions)} questions')
@@ -113,9 +115,9 @@ class StudentKnowledge(object): @@ -113,9 +115,9 @@ class StudentKnowledge(object):
113 115
114 self.current_question = None 116 self.current_question = None
115 self.state[self.current_topic] = { 117 self.state[self.current_topic] = {
116 - 'level': 1.0,  
117 - 'date': datetime.now()  
118 - } 118 + 'date': datetime.now(),
  119 + 'level': self.correct_answers / (self.correct_answers + self.wrong_answers)
  120 + }
119 self.unlock_topics() 121 self.unlock_topics()
120 122
121 123
@@ -134,6 +136,7 @@ class StudentKnowledge(object): @@ -134,6 +136,7 @@ class StudentKnowledge(object):
134 136
135 # if answer is correct, get next question 137 # if answer is correct, get next question
136 if grade > 0.999: 138 if grade > 0.999:
  139 + self.correct_answers += 1
137 self.finished_questions.append(q) 140 self.finished_questions.append(q)
138 try: 141 try:
139 self.current_question = self.questions.pop(0) # FIXME empty? 142 self.current_question = self.questions.pop(0) # FIXME empty?
@@ -144,6 +147,7 @@ class StudentKnowledge(object): @@ -144,6 +147,7 @@ class StudentKnowledge(object):
144 147
145 # if answer is wrong, keep same question and add a similar one at the end 148 # if answer is wrong, keep same question and add a similar one at the end
146 else: 149 else:
  150 + self.wrong_answers += 1
147 factory = self.deps.node[self.current_topic]['factory'] 151 factory = self.deps.node[self.current_topic]['factory']
148 self.questions.append(factory[q['ref']].generate()) 152 self.questions.append(factory[q['ref']].generate())
149 153
templates/maintopics.html
@@ -88,9 +88,9 @@ @@ -88,9 +88,9 @@
88 {% if t['type']=='chapter' %} 88 {% if t['type']=='chapter' %}
89 <i class="fas fa-trophy fa-lg text-warning"></i> 89 <i class="fas fa-trophy fa-lg text-warning"></i>
90 {% else %} 90 {% else %}
91 - <span class="text-nowrap">  
92 - {{ round(t['level']*5)*'<i class="fas fa-star text-warning"></i>' + round(5-t['level']*5)*'<i class="far fa-star text-warning"></i>' }}  
93 - </span> 91 + <span class="text-nowrap">
  92 + {{ round(t['level']*5)*'<i class="fas fa-star text-warning"></i>' + (5-round(t['level']*5))*'<i class="far fa-star text-warning"></i>' }}
  93 + </span>
94 {% end %} 94 {% end %}
95 {% end %} 95 {% end %}
96 </div> 96 </div>