Commit dda6f8384e5034d172ae6a5a2f56fc619065cfee
1 parent
79e29c38
Exists in
master
and in
1 other branch
- 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 | ... | ... |