Commit 094837eb454f6de44a4b11a555ae1c1a1cea0fef
1 parent
8bc0b519
Exists in
master
and in
1 other branch
- progress bar under the menu shows the remaining time.
- update BUGS.md - add example of random choice of questions in demo.yaml - update .gitignore - remove package-lock.json from git repository
Showing
5 changed files
with
39 additions
and
11 deletions
Show diff stats
BUGS.md
| ... | ... | @@ -5,7 +5,6 @@ |
| 5 | 5 | - servidor ntpd para configurar a data/hora dos portateis dell |
| 6 | 6 | - link na pagina com a nota para voltar ao principio. |
| 7 | 7 | - CRITICAL se answer for `i<n` a revisão de provas mostra apenas i (interpreta `<` como tag?) |
| 8 | -- sock.bind(sockaddr) OSError: [Errno 48] Address already in use | |
| 9 | 8 | - na pagina grade.html as barras estao normalizadas para os limites scale_min e max do teste actual e nao do realizado. |
| 10 | 9 | - codigo `hello world` nao esta a preservar o whitespace. O renderer de markdown gera a tag <code> que não preserva whitespace. Necessario adicionar <pre>. |
| 11 | 10 | - teste nao esta a mostrar imagens de vez em quando. |
| ... | ... | @@ -16,15 +15,14 @@ |
| 16 | 15 | - melhorar o botao de autorizar (desliga-se), usar antes um botao? |
| 17 | 16 | e.g. retornar None quando nao ha alteracoes relativamente à última vez. |
| 18 | 17 | ou usar push (websockets?) |
| 19 | -- lidar com eventos unfocus. | |
| 20 | -- servidor nao esta a lidar com eventos scroll/resize. ignorar? | |
| 21 | 18 | - Test.reset_answers() unused. |
| 22 | 19 | - mudar ref do test para test_id (ref já é usado nas perguntas) |
| 23 | 20 | - incluir test_id na tabela questions (futuro semestre, pode quebrar compatibilidade). |
| 24 | -- na pagina admin, mostrar com cor vermelha as horas de entrada dos alunos que ja tenha excedido o tempo | |
| 21 | +- na pagina admin, mostrar com cor vermelha as horas de entrada dos alunos que ja tenham excedido o tempo | |
| 25 | 22 | |
| 26 | 23 | # TODO |
| 27 | 24 | |
| 25 | +- mostrar unfocus e window area em /admin | |
| 28 | 26 | - testar as perguntas todas no início do teste. |
| 29 | 27 | - test: mostrar duração do teste com progressbar no navbar. |
| 30 | 28 | - submissao fazer um post ajax? |
| ... | ... | @@ -65,6 +63,9 @@ ou usar push (websockets?) |
| 65 | 63 | |
| 66 | 64 | # FIXED |
| 67 | 65 | |
| 66 | +- lidar com eventos unfocus. | |
| 67 | +- servidor nao esta a lidar com eventos resize. | |
| 68 | +- sock.bind(sockaddr) OSError: [Errno 48] Address already in use | |
| 68 | 69 | - dizer quanto desconta em cada pergunta de escolha multipla |
| 69 | 70 | - se houver erros a abrir ficheiros .yaml de perguntas, depois dos testes diz "No errors found". |
| 70 | 71 | - se faltarem files na especificação do teste, o check não detecta e factory não gera para essas perguntas. | ... | ... |
demo/demo.yaml
demo/questions/questions-tutorial.yaml
| ... | ... | @@ -535,8 +535,24 @@ |
| 535 | 535 | |
| 536 | 536 | # ---------------------------------------------------------------------------- |
| 537 | 537 | - type: alert |
| 538 | - ref: tut-alert | |
| 539 | - title: Texto informativo (perigo) | |
| 538 | + ref: tut-alert1 | |
| 539 | + title: Texto informativo (perigo) - versão 1 | |
| 540 | + text: | | |
| 541 | + Não conta para avaliação. Texto importante. | |
| 542 | + | |
| 543 | +  | |
| 544 | + | |
| 545 | + As imagens podem ser adicionadas usando a notação standard em markdown. Há | |
| 546 | + duas possibilidads: | |
| 547 | + | |
| 548 | + - Imagens inline: não têm título definido e podem ser incluídas no meio de | |
| 549 | + uma linha de texto usando``. | |
| 550 | + - Imagens centradas com título: ``. | |
| 551 | + O título aprece por baixo da imagem. O título pode ser uma string vazia. | |
| 552 | + | |
| 553 | +- type: alert | |
| 554 | + ref: tut-alert2 | |
| 555 | + title: Texto informativo (perigo) - versão 2 | |
| 540 | 556 | text: | |
| 541 | 557 | Não conta para avaliação. Texto importante. |
| 542 | 558 | |
| ... | ... | @@ -555,7 +571,7 @@ |
| 555 | 571 | text: | |
| 556 | 572 | This question is not included in the test and will not shown up. |
| 557 | 573 | It also lacks a "ref" and is automatically named |
| 558 | - `questions/questions-tutorial.yaml:0012`. | |
| 574 | + `questions/questions-tutorial.yaml:0013`. | |
| 559 | 575 | A warning is shown on the console about this. |
| 560 | 576 | The number at the end is the index position of this question. |
| 561 | 577 | Indices start at 0. | ... | ... |
perguntations/__init__.py
perguntations/templates/test.html
| ... | ... | @@ -44,8 +44,12 @@ |
| 44 | 44 | <!-- ===================================================================== --> |
| 45 | 45 | <body> |
| 46 | 46 | <!-- ===================================================================== --> |
| 47 | +<div class="progress fixed-top" style="height: 60px; border-radius: 0px;"> | |
| 48 | + <div class="progress-bar bg-secondary" role="progressbar" style="width: 100%" aria-valuenow="100" aria-valuemin="0" aria-valuemax="100"></div> | |
| 49 | +</div> | |
| 47 | 50 | |
| 48 | 51 | <nav id="navbar" class="navbar navbar-expand-sm fixed-top navbar-dark bg-dark"> |
| 52 | + | |
| 49 | 53 | <a class="navbar-brand" href="#"> |
| 50 | 54 | <img src="/static/logo_horizontal.png" height="30" alt=""> |
| 51 | 55 | </a> |
| ... | ... | @@ -62,6 +66,7 @@ |
| 62 | 66 | <li class="nav-item"><h5> |
| 63 | 67 | <span class="navbar-text" id="clock"> --:-- </span> |
| 64 | 68 | </h5> |
| 69 | + | |
| 65 | 70 | </li> |
| 66 | 71 | </ul> |
| 67 | 72 | |
| ... | ... | @@ -76,6 +81,7 @@ |
| 76 | 81 | </li> |
| 77 | 82 | </ul> |
| 78 | 83 | </div> |
| 84 | + | |
| 79 | 85 | </nav> |
| 80 | 86 | |
| 81 | 87 | <!-- ===================================================================== --> |
| ... | ... | @@ -152,7 +158,8 @@ |
| 152 | 158 | </script> |
| 153 | 159 | |
| 154 | 160 | <script> |
| 155 | - var finishtime = new Date().getTime() + {{ t['duration']*60*1000 }}; | |
| 161 | + var duration = {{ t['duration']*60*1000 }}; // ms | |
| 162 | + var finishtime = new Date().getTime() + duration; | |
| 156 | 163 | |
| 157 | 164 | {% if t['duration'] == 0 %} |
| 158 | 165 | $("#clock").html("+\u221e"); |
| ... | ... | @@ -161,7 +168,7 @@ |
| 161 | 168 | // Update the count down every 1 second |
| 162 | 169 | var x = setInterval(function() { |
| 163 | 170 | var now = new Date().getTime(); |
| 164 | - var distance = finishtime - now; | |
| 171 | + var distance = finishtime - now; // ms | |
| 165 | 172 | |
| 166 | 173 | // Time calculations for days, hours, minutes and seconds |
| 167 | 174 | var minutes = Math.floor((distance / (1000 * 60))); |
| ... | ... | @@ -180,6 +187,9 @@ |
| 180 | 187 | $("#test").submit(); |
| 181 | 188 | {% end %} |
| 182 | 189 | } |
| 190 | + | |
| 191 | + var progress = distance/duration*100 + '%' | |
| 192 | + $('.progress-bar').css('width', progress).attr('aria-valuenow', progress); | |
| 183 | 193 | }, 1000); |
| 184 | 194 | |
| 185 | 195 | {% end %} | ... | ... |