Commit 6c5a961afa06755da51b579e562faaf7e1d18548
1 parent
e23fb122
Exists in
master
and in
1 other branch
minor mods
Showing
3 changed files
with
19 additions
and
17 deletions
Show diff stats
BUGS.md
| 1 | -# BUGS | 1 | +# Bugs and Wishlist |
| 2 | + | ||
| 3 | +## BUGS | ||
| 2 | 4 | ||
| 3 | - nao esta a respeitar o numero de tentativas `max_tries`. | 5 | - nao esta a respeitar o numero de tentativas `max_tries`. |
| 4 | - se na especificacao de um curso, a referencia do topico nao existir como | 6 | - se na especificacao de um curso, a referencia do topico nao existir como |
| 5 | directorio, rebenta. | 7 | directorio, rebenta. |
| 6 | - internal server error ao fazer logout no macos python3.8 | 8 | - internal server error ao fazer logout no macos python3.8 |
| 7 | -- GET can get filtered by browser cache | ||
| 8 | - topicos chapter devem ser automaticamente completos assim que as dependencias | 9 | - topicos chapter devem ser automaticamente completos assim que as dependencias |
| 9 | são satisfeitas. Nao devia ser necessario (ou possivel?) clicar neles. | 10 | são satisfeitas. Nao devia ser necessario (ou possivel?) clicar neles. |
| 10 | - topicos do tipo learn deviam por defeito nao ser randomizados e assumir | 11 | - topicos do tipo learn deviam por defeito nao ser randomizados e assumir |
| @@ -23,11 +24,11 @@ | @@ -23,11 +24,11 @@ | ||
| 23 | - shift-enter não está a funcionar | 24 | - shift-enter não está a funcionar |
| 24 | - default prefix should be obtained from each course (yaml conf)? | 25 | - default prefix should be obtained from each course (yaml conf)? |
| 25 | 26 | ||
| 26 | -# TODO | 27 | +## TODO |
| 27 | 28 | ||
| 28 | -- shuffle das perguntas dentro de um topico | ||
| 29 | - alterar tabelas para incluir email de recuperacao de password (e outros | 29 | - alterar tabelas para incluir email de recuperacao de password (e outros |
| 30 | avisos) | 30 | avisos) |
| 31 | +- shuffle das perguntas dentro de um topico | ||
| 31 | - registar `last_seen` e remover os antigos de cada vez que houver um login. | 32 | - registar `last_seen` e remover os antigos de cada vez que houver um login. |
| 32 | - indicar qtos topicos faltam (>=50%) para terminar o curso. | 33 | - indicar qtos topicos faltam (>=50%) para terminar o curso. |
| 33 | - ao fim de 3 tentativas com password errada, envia email com nova password. | 34 | - ao fim de 3 tentativas com password errada, envia email com nova password. |
| @@ -50,8 +51,9 @@ | @@ -50,8 +51,9 @@ | ||
| 50 | mais falhadas, tempo médio por pergunta. | 51 | mais falhadas, tempo médio por pergunta. |
| 51 | - normalizar com perguntations. | 52 | - normalizar com perguntations. |
| 52 | 53 | ||
| 53 | -# FIXED | 54 | +## FIXED |
| 54 | 55 | ||
| 56 | +- rankings rebenta se nunhum aluno tiver feito nenhum topico. | ||
| 55 | - templates question-*.html tem input hidden question_ref que não é usado. | 57 | - templates question-*.html tem input hidden question_ref que não é usado. |
| 56 | remover? | 58 | remover? |
| 57 | - goals se forem do tipo chapter deve importar todas as dependencias do chapter. | 59 | - goals se forem do tipo chapter deve importar todas as dependencias do chapter. |
aprendizations/learnapp.py
| @@ -599,9 +599,9 @@ class LearnApp(): | @@ -599,9 +599,9 @@ class LearnApp(): | ||
| 599 | return self.courses[course_id] | 599 | return self.courses[course_id] |
| 600 | 600 | ||
| 601 | # ------------------------------------------------------------------------ | 601 | # ------------------------------------------------------------------------ |
| 602 | - def get_rankings(self, uid: str, course_id: str) -> Iterable[Tuple[str, str, float]]: | 602 | + def get_rankings(self, uid: str, cid: str) -> Iterable[Tuple[str, str, float]]: |
| 603 | ''' | 603 | ''' |
| 604 | - Returns rankings for a certain course_id. | 604 | + Returns rankings for a certain cid (course_id). |
| 605 | User where uid have <=2 chars are considered ghosts are hidden from | 605 | User where uid have <=2 chars are considered ghosts are hidden from |
| 606 | the rankings. This is so that there can be users for development or | 606 | the rankings. This is so that there can be users for development or |
| 607 | testing purposes, which are not real users. | 607 | testing purposes, which are not real users. |
| @@ -609,7 +609,7 @@ class LearnApp(): | @@ -609,7 +609,7 @@ class LearnApp(): | ||
| 609 | This should be modified to have a "visible" flag | 609 | This should be modified to have a "visible" flag |
| 610 | ''' | 610 | ''' |
| 611 | 611 | ||
| 612 | - logger.info('User "%s" rankings for "%s"', uid, course_id) | 612 | + logger.info('User "%s" rankings for "%s"', uid, cid) |
| 613 | query_students = select(Student.id, Student.name) | 613 | query_students = select(Student.id, Student.name) |
| 614 | query_student_topics = select(StudentTopic.student_id, | 614 | query_student_topics = select(StudentTopic.student_id, |
| 615 | StudentTopic.topic_id, | 615 | StudentTopic.topic_id, |
| @@ -625,7 +625,7 @@ class LearnApp(): | @@ -625,7 +625,7 @@ class LearnApp(): | ||
| 625 | 625 | ||
| 626 | # compute topic progress | 626 | # compute topic progress |
| 627 | now = datetime.now() | 627 | now = datetime.now() |
| 628 | - goals = self.courses[course_id]['goals'] | 628 | + goals = self.courses[cid]['goals'] |
| 629 | progress: DefaultDict[str, float] = defaultdict(int) | 629 | progress: DefaultDict[str, float] = defaultdict(int) |
| 630 | 630 | ||
| 631 | for student, topic, level, date in student_topics: | 631 | for student, topic, level, date in student_topics: |
mypy.ini
| @@ -2,14 +2,14 @@ | @@ -2,14 +2,14 @@ | ||
| 2 | python_version = 3.9 | 2 | python_version = 3.9 |
| 3 | plugins = sqlalchemy.ext.mypy.plugin | 3 | plugins = sqlalchemy.ext.mypy.plugin |
| 4 | 4 | ||
| 5 | -[mypy-pygments.*] | ||
| 6 | -ignore_missing_imports = True | 5 | +; [mypy-pygments.*] |
| 6 | +; ignore_missing_imports = True | ||
| 7 | 7 | ||
| 8 | -[mypy-networkx.*] | ||
| 9 | -ignore_missing_imports = True | 8 | +; [mypy-networkx.*] |
| 9 | +; ignore_missing_imports = True | ||
| 10 | 10 | ||
| 11 | -[mypy-bcrypt.*] | ||
| 12 | -ignore_missing_imports = True | 11 | +; [mypy-bcrypt.*] |
| 12 | +; ignore_missing_imports = True | ||
| 13 | 13 | ||
| 14 | -[mypy-mistune.*] | ||
| 15 | -ignore_missing_imports = True | 14 | +; [mypy-mistune.*] |
| 15 | +; ignore_missing_imports = True |