Commit dda6f8384e5034d172ae6a5a2f56fc619065cfee

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

- fixed error on empty answer for questions of type radio

Showing 4 changed files with 18 additions and 12 deletions   Show diff stats
BUGS.md
1 1  
2 2 BUGS:
3 3  
4   -- indentação da primeira linha de código não funciona.
5   -- submeter questoes radio, da erro se nao escolher nenhuma opção.
6 4 - gravar evolucao na bd no final de cada topico.
7 5 - servir imagens/ficheiros.
8 6 - topicos virtuais nao deveriam aparecer. na construção da árvore os sucessores seriam ligados directamente aos predecessores.
9 7  
10 8  
11 9 - reportar comentarios após submeter.
12   -- cada topico tem uma pagina begin e uma end
  10 +- cada topico tem uma pagina begin e uma end?
13 11 - pertuntas tipo tristate: (sim, não, não sei)
14 12 - animação no final de cada topico para se perceber a transição
15 13 - aumentar espaço a seguir às tabelas no texto
... ... @@ -31,6 +29,8 @@ TODO:
31 29  
32 30 FIXED:
33 31  
  32 +- submeter questoes radio, da erro se nao escolher nenhuma opção.
  33 +- indentação da primeira linha de código não funciona.
34 34 - markdown com o mistune.
35 35 - change password in maintopics.html, falta menu para lançar modal
36 36 - ver documentacao de migracao para networkx 2.0 https://networkx.github.io/documentation/stable/release/migration_guide_from_1.x_to_2.0.html
... ...
knowledge.py
... ... @@ -113,14 +113,7 @@ class StudentKnowledge(object):
113 113  
114 114 q = self.current_question
115 115  
116   - # answers are returned from tornado in a list
117   - if q['type'] in ('success', 'information', 'info'): # FIXME danger...
118   - q['answer'] = None
119   - elif q['type'] != 'checkbox':
120   - q['answer'] = answer[0]
121   - else:
122   - q['answer'] = answer
123   -
  116 + q['answer'] = answer
124 117 q['finish_time'] = datetime.now()
125 118 grade = q.correct()
126 119 logger.debug(f'Grade = {grade:.2} ({q["ref"]})')
... ...
learnapp.py
... ... @@ -207,6 +207,10 @@ class LearnApp(object):
207 207 return self.online[uid]['state'].get_current_question() # dict
208 208  
209 209 # ------------------------------------------------------------------------
  210 + def get_student_question_type(self, uid):
  211 + return self.online[uid]['state'].get_current_question()['type']
  212 +
  213 + # ------------------------------------------------------------------------
210 214 def get_student_topic(self, uid):
211 215 return self.online[uid]['state'].get_current_topic() # str
212 216  
... ...
serve.py
... ... @@ -229,7 +229,16 @@ class QuestionHandler(BaseHandler):
229 229  
230 230 # check answer and get next question (same, new or None)
231 231 answer = self.get_body_arguments('answer') # list
232   - print(answer)
  232 + if not answer:
  233 + answer = None
  234 + else:
  235 + # answers returned in a list. fix depending on question type
  236 + qtype = self.learn.get_student_question_type(user)
  237 + if qtype in ('success', 'information', 'info'): # FIXME danger...
  238 + answer = None
  239 + elif qtype != 'checkbox': # radio, text, textarea, ...
  240 + answer = answer[0]
  241 +
233 242 grade = self.learn.check_answer(user, answer)
234 243 question = self.learn.get_student_question(user)
235 244  
... ...