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.

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