Commit 44730b140243837b89b97ae5fd4a2db4f5f35b8a
1 parent
f9e4fea3
Exists in
master
and in
1 other branch
minor changes
Showing
5 changed files
with
33 additions
and
32 deletions
Show diff stats
demo/demo.yaml
| @@ -22,7 +22,7 @@ title: Teste de demonstração (tutorial) | @@ -22,7 +22,7 @@ title: Teste de demonstração (tutorial) | ||
| 22 | 22 | ||
| 23 | # Duration in minutes. | 23 | # Duration in minutes. |
| 24 | # (0 or undefined means infinite time) | 24 | # (0 or undefined means infinite time) |
| 25 | -duration: 0 | 25 | +duration: 5 |
| 26 | 26 | ||
| 27 | # Automatic test submission after the given 'duration' timeout | 27 | # Automatic test submission after the given 'duration' timeout |
| 28 | # (default: false) | 28 | # (default: false) |
demo/questions/generators/generate-question.py
| @@ -31,23 +31,26 @@ text: | | @@ -31,23 +31,26 @@ text: | | ||
| 31 | 31 | ||
| 32 | a, b = (int(n) for n in sys.argv[1:]) # argumentos da linha de comando | 32 | a, b = (int(n) for n in sys.argv[1:]) # argumentos da linha de comando |
| 33 | 33 | ||
| 34 | - x = randint(a, b) | ||
| 35 | - y = randint(a, b) | ||
| 36 | - r = x + y | 34 | + x = randint(a, b) # número inteiro no intervalo a..b |
| 35 | + y = randint(a, b) # número inteiro no intervalo a..b | ||
| 36 | + r = x + y # calcula resultado correcto | ||
| 37 | 37 | ||
| 38 | print(f'''--- | 38 | print(f'''--- |
| 39 | type: text | 39 | type: text |
| 40 | title: Contas de somar | 40 | title: Contas de somar |
| 41 | text: | | 41 | text: | |
| 42 | - bla bla bla | 42 | + Calcule o resultado de ${{x}} + {{y}}$. |
| 43 | correct: '{{r}}' | 43 | correct: '{{r}}' |
| 44 | solution: | | 44 | solution: | |
| 45 | A solução é {{r}}.''') | 45 | A solução é {{r}}.''') |
| 46 | ``` | 46 | ``` |
| 47 | 47 | ||
| 48 | Este script deve ter permissões para poder ser executado no terminal. | 48 | Este script deve ter permissões para poder ser executado no terminal. |
| 49 | + Podemos testar o programa no terminal `./gen-somar.py 1 50` e verificar que | ||
| 50 | + o output é uma pergunta válida em formato `yaml`. Agora é necessário indicar | ||
| 51 | + que este script deve ser usado para gerar uma pergunta. | ||
| 49 | 52 | ||
| 50 | - Para indicar que uma pergunta é gerada externamente, esta é declarada com | 53 | + Uma pergunta gerada por um programa externo é declarada com |
| 51 | 54 | ||
| 52 | ```yaml | 55 | ```yaml |
| 53 | - type: generator | 56 | - type: generator |
| @@ -57,8 +60,7 @@ text: | | @@ -57,8 +60,7 @@ text: | | ||
| 57 | args: [1, 100] | 60 | args: [1, 100] |
| 58 | ``` | 61 | ``` |
| 59 | 62 | ||
| 60 | - Opcionalmente, o programa pode receber uma lista de argumentos declarados em | ||
| 61 | - `args`. | 63 | + O programa pode receber uma lista de argumentos declarados em `args`. |
| 62 | 64 | ||
| 63 | --- | 65 | --- |
| 64 | 66 |
demo/questions/questions-tutorial.yaml
| @@ -552,7 +552,7 @@ | @@ -552,7 +552,7 @@ | ||
| 552 | - Imagens inline: não têm título definido e podem ser incluídas no meio de | 552 | - Imagens inline: não têm título definido e podem ser incluídas no meio de |
| 553 | uma linha de texto usando``. | 553 | uma linha de texto usando``. |
| 554 | - Imagens centradas com título: ``. | 554 | - Imagens centradas com título: ``. |
| 555 | - O título aprece por baixo da imagem. O título pode ser uma string vazia. | 555 | + O título é colocado por baixo da imagem. Pode ser uma string vazia. |
| 556 | 556 | ||
| 557 | - type: alert | 557 | - type: alert |
| 558 | ref: tut-alert2 | 558 | ref: tut-alert2 |
| @@ -568,7 +568,7 @@ | @@ -568,7 +568,7 @@ | ||
| 568 | - Imagens inline: não têm título definido e podem ser incluídas no meio de | 568 | - Imagens inline: não têm título definido e podem ser incluídas no meio de |
| 569 | uma linha de texto usando``. | 569 | uma linha de texto usando``. |
| 570 | - Imagens centradas com título: ``. | 570 | - Imagens centradas com título: ``. |
| 571 | - O título aprece por baixo da imagem. O título pode ser uma string vazia. | 571 | + O título é colocado por baixo da imagem. Pode ser uma string vazia. |
| 572 | 572 | ||
| 573 | # ---------------------------------------------------------------------------- | 573 | # ---------------------------------------------------------------------------- |
| 574 | - type: information | 574 | - type: information |
perguntations/templates/question-information.html
| 1 | {% autoescape %} | 1 | {% autoescape %} |
| 2 | 2 | ||
| 3 | {% if q['type'] == 'information' %} | 3 | {% if q['type'] == 'information' %} |
| 4 | - <div class="alert alert-info border-info" role="alert"> | 4 | +<div class="alert alert-info border-info" role="alert"> |
| 5 | {% elif q['type'] == 'success' %} | 5 | {% elif q['type'] == 'success' %} |
| 6 | - <div class="alert alert-success border-success" role="alert"> | 6 | +<div class="alert alert-success border-success" role="alert"> |
| 7 | {% elif q['type'] == 'warning' %} | 7 | {% elif q['type'] == 'warning' %} |
| 8 | - <div class="alert alert-warning border-warning" role="alert"> | 8 | +<div class="alert alert-warning border-warning" role="alert"> |
| 9 | {% else %} | 9 | {% else %} |
| 10 | - <div class="alert alert-danger border-danger" role="alert"> | 10 | +<div class="alert alert-danger border-danger" role="alert"> |
| 11 | {% end %} | 11 | {% end %} |
| 12 | - <h3> | ||
| 13 | - {{ q['title'] }} | ||
| 14 | - </h3> | 12 | + <h3> |
| 13 | + {{ q['title'] }} | ||
| 14 | + </h3> | ||
| 15 | 15 | ||
| 16 | - <div id="text"> | ||
| 17 | - {{ md(q['text']) }} | ||
| 18 | - </div> | 16 | + <div id="text"> |
| 17 | + {{ md(q['text']) }} | ||
| 18 | + </div> | ||
| 19 | 19 | ||
| 20 | - {% if show_ref %} | ||
| 21 | - <hr> | ||
| 22 | - file: <code>{{ q['path'] }}/{{ q['filename'] }}</code><br> | ||
| 23 | - ref: <code>{{ q['ref'] }}</code> | ||
| 24 | - {% end %} | 20 | + {% if show_ref %} |
| 21 | + <hr> | ||
| 22 | + file: <code>{{ q['path'] }}/{{ q['filename'] }}</code><br> | ||
| 23 | + ref: <code>{{ q['ref'] }}</code> | ||
| 24 | + {% end %} | ||
| 25 | </div> | 25 | </div> |
| 26 | \ No newline at end of file | 26 | \ No newline at end of file |
perguntations/templates/test.html
| @@ -89,6 +89,7 @@ | @@ -89,6 +89,7 @@ | ||
| 89 | 89 | ||
| 90 | <div class="jumbotron"> | 90 | <div class="jumbotron"> |
| 91 | <h1 class="display-5">{{ t['title'] }}</h1> | 91 | <h1 class="display-5">{{ t['title'] }}</h1> |
| 92 | + | ||
| 92 | <hr> | 93 | <hr> |
| 93 | 94 | ||
| 94 | <h5> | 95 | <h5> |
| @@ -98,11 +99,11 @@ | @@ -98,11 +99,11 @@ | ||
| 98 | </div> | 99 | </div> |
| 99 | <div class="row"> | 100 | <div class="row"> |
| 100 | <label for="duracao" class="col-sm-3">Duração:</label> | 101 | <label for="duracao" class="col-sm-3">Duração:</label> |
| 101 | - <div class="col-sm-9" id="duracao">{{ str(t['duration'])+' minutos' if t['duration'] > 0 else 'sem limite' }}</div> | 102 | + <div class="col-sm-9" id="duracao">{{ str(t['duration'])+' minutos' if t['duration'] > 0 else 'sem limite de tempo' }}</div> |
| 102 | </div> | 103 | </div> |
| 103 | <div class="row"> | 104 | <div class="row"> |
| 104 | <label for="submissao" class="col-sm-3">Submissão:</label> | 105 | <label for="submissao" class="col-sm-3">Submissão:</label> |
| 105 | - <div class="col-sm-9" id="submissao">{{ 'automática' if t['autosubmit'] else 'manual' }}</div> | 106 | + <div class="col-sm-9" id="submissao">{{ 'automática no fim do tempo' if t['autosubmit'] else 'manual' }}</div> |
| 106 | </div> | 107 | </div> |
| 107 | </h5> | 108 | </h5> |
| 108 | </div> | 109 | </div> |
| @@ -115,10 +116,10 @@ | @@ -115,10 +116,10 @@ | ||
| 115 | {% end %} | 116 | {% end %} |
| 116 | 117 | ||
| 117 | <div class="form-row"> | 118 | <div class="form-row"> |
| 118 | - <div class="col-12"> | ||
| 119 | - <button type="button" class="btn btn-success btn-lg btn-block" data-toggle="modal" data-target="#confirmar" id="form-button-submit">Submeter teste</button> | 119 | + <div class="col-12"> |
| 120 | + <button type="button" class="btn btn-success btn-lg btn-block" data-toggle="modal" data-target="#confirmar" id="form-button-submit">Submeter teste</button> | ||
| 121 | + </div> | ||
| 120 | </div> | 122 | </div> |
| 121 | - </div> | ||
| 122 | </form> | 123 | </form> |
| 123 | <hr> | 124 | <hr> |
| 124 | </div> <!-- container --> | 125 | </div> <!-- container --> |
| @@ -191,9 +192,7 @@ | @@ -191,9 +192,7 @@ | ||
| 191 | var progress = distance/duration*100 + '%' | 192 | var progress = distance/duration*100 + '%' |
| 192 | $('.progress-bar').css('width', progress).attr('aria-valuenow', progress); | 193 | $('.progress-bar').css('width', progress).attr('aria-valuenow', progress); |
| 193 | }, 1000); | 194 | }, 1000); |
| 194 | - | ||
| 195 | {% end %} | 195 | {% end %} |
| 196 | - | ||
| 197 | </script> | 196 | </script> |
| 198 | </body> | 197 | </body> |
| 199 | </html> | 198 | </html> |