# BUGS - servidor nao esta a lidar com eventos scroll/resize - se um teste tiver a mesma pergunta (ref igual) varias vezes, rebenta na correcçao. As respostas são agregadas numa lista para cada ref. Ex: {'ref1': 'resposta1', 'ref2': ['resposta2a', 'resposta2b']} possivelmente as referencias das perguntas deveriam ser o "testeRef:numPergunta"... é preciso ver como depois estao associadas às correcções. - se directorio logs não existir no directorio actual (não perguntations) rebenta. - usar thread.Lock para aceder a variaveis de estado? # TODO - se ocorrer um erro na correcçao avisar aluno para contactar o professor. - implementar practice mode. - usar http://wtfforms.com para radio e checkboxes - abrir o teste numa janela maximizada e que nao permite que o aluno a redimensione/mova. - detectar scroll e enviar posição para servidor (analise de scroll para detectar copianço? ou simplesmente para analisar como os alunos percorrem o teste) - single page web no teste/correcçao. Página construída em javascript, obter perguntas com ajax (para practice?). - aviso na pagina principal para quem usa browser da treta - permitir varios testes, aluno escolhe qual o teste que quer fazer. - criar perguntas de outros tipos, e.g. associação, ordenação, varios textinput - perguntas para professor corrigir mais tarde. - fazer uma calculadora javascript e por no menu. surge como modal - GeoIP? - alunos online têm acesso a /correct e servidor rebenta. (não é fácil impedir...) - enviar logs para web? # FIXED - usar http://fontawesome.io/examples/ em vez dos do bootstrap3 - se pergunta tiver 'type:' errado, rebenta. - se submeter um teste so com information, da divisao por zero. - se save_answers nao existir, da warning que nao serao gravados, mas sao sempre gravados! pagina de administracao diz --not being saved-- - first login é INFO e não WARNING - /review não mostra imagens porque precisa que teste esteja a decorrer... - visualizar um teste ja realizado na página de administração - Depois da correcção, mostra testes realizados que não foram realizados pelo próprio - detectar se janela perde focus e alertar o prof (http://stackoverflow.com/questions/1060008/is-there-a-way-to-detect-if-a-browser-window-is-not-currently-active) - server nao esta a receber eventos focus/blur dos utilizadores diferentes de '0', estranho... - permitir adicionar imagens nas perguntas. - detect_unfocus.js so funciona se estiver inline no html. porquê??? - inserir novo aluno /admin não fecha. - se aluno desistir, ainda fica marcado como online - give dá None em vez de 0.0 - debug mode: log levels not working - Se aluno fizer logout, o teste não é gravado e ficamos sem registo do teste que o aluno viu. - criar sqlalchemy sessions dentro de app de modo a estarem associadas a requests. ver se é facil usar with db:(...) para criar e fechar sessão. - sqlalchemy queixa-se de threads. - SQLAlchemy em vez da classe database. - replace sys.exit calls - if does not find questions, aborts silently - argumentos da linha de comando a funcionar. - configuracao dos logs cherrypy para se darem bem com os outros - browser e ip usados gravado no test. - botões allow all/deny all. - mostrar botão de reset apenas no final da pagina, com edit para escrever o número. - aluno faz login, mas fecha browser, ficando no estado (online,deny). Ao tentar login com outro browser está deny e o prof não consegue pô-lo em allow pois já não está na lista. => solucao é manter todos os alunos numa tabela. - pagina de login nao esta a apresentar bem. parece que precisa de autorizacao para aceder a /static... - Não mostrar Professor nos activos em /admin - /admin mostrar actualizações automaticamente? - se no teste uma das "ref" nao existir nos ficheiros de perguntas, rebenta. - alunos podem estar online, mas browser perder sessao => nao conseguem mais entrar porque a App pensa que estão online. Permitir login e dar o mesmo teste. - pagina de management dos alunos. mostrar online ordenados por hora de login, offline por número. permitir reset da pw e allow/disallow - script de correcção pode enviar dicionario yaml com grade e comentarios. ex: grade: 0.5 comments: Falhou na função xpto. os comentários são guardados no teste (ficheiro) ou enviados para o browser no modo practice. - testar regex na definicao das perguntas. como se faz rawstring em yaml? singlequote? problemas de backslash??? sim... necessário fazer \\ em varios casos, mas não é claro! e.g. \n é convertido em espaço mas \w é convertido em \\ e w. Solução (http://stackoverflow.com/questions/10771163/python-interpreting-a-regex-from-a-yaml-config-file) é fazer correct: !regex '^(yes|no)'