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
demo/questions/generators/generate-question.py
| ... | ... | @@ -31,23 +31,26 @@ text: | |
| 31 | 31 | |
| 32 | 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 | 38 | print(f'''--- |
| 39 | 39 | type: text |
| 40 | 40 | title: Contas de somar |
| 41 | 41 | text: | |
| 42 | - bla bla bla | |
| 42 | + Calcule o resultado de ${{x}} + {{y}}$. | |
| 43 | 43 | correct: '{{r}}' |
| 44 | 44 | solution: | |
| 45 | 45 | A solução é {{r}}.''') |
| 46 | 46 | ``` |
| 47 | 47 | |
| 48 | 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 | 55 | ```yaml |
| 53 | 56 | - type: generator |
| ... | ... | @@ -57,8 +60,7 @@ text: | |
| 57 | 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 | 552 | - Imagens inline: não têm título definido e podem ser incluídas no meio de |
| 553 | 553 | uma linha de texto usando``. |
| 554 | 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 | 557 | - type: alert |
| 558 | 558 | ref: tut-alert2 |
| ... | ... | @@ -568,7 +568,7 @@ |
| 568 | 568 | - Imagens inline: não têm título definido e podem ser incluídas no meio de |
| 569 | 569 | uma linha de texto usando``. |
| 570 | 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 | 574 | - type: information | ... | ... |
perguntations/templates/question-information.html
| 1 | 1 | {% autoescape %} |
| 2 | 2 | |
| 3 | 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 | 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 | 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 | 9 | {% else %} |
| 10 | - <div class="alert alert-danger border-danger" role="alert"> | |
| 10 | +<div class="alert alert-danger border-danger" role="alert"> | |
| 11 | 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 | 25 | </div> |
| 26 | 26 | \ No newline at end of file | ... | ... |
perguntations/templates/test.html
| ... | ... | @@ -89,6 +89,7 @@ |
| 89 | 89 | |
| 90 | 90 | <div class="jumbotron"> |
| 91 | 91 | <h1 class="display-5">{{ t['title'] }}</h1> |
| 92 | + | |
| 92 | 93 | <hr> |
| 93 | 94 | |
| 94 | 95 | <h5> |
| ... | ... | @@ -98,11 +99,11 @@ |
| 98 | 99 | </div> |
| 99 | 100 | <div class="row"> |
| 100 | 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 | 103 | </div> |
| 103 | 104 | <div class="row"> |
| 104 | 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 | 107 | </div> |
| 107 | 108 | </h5> |
| 108 | 109 | </div> |
| ... | ... | @@ -115,10 +116,10 @@ |
| 115 | 116 | {% end %} |
| 116 | 117 | |
| 117 | 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 | 122 | </div> |
| 121 | - </div> | |
| 122 | 123 | </form> |
| 123 | 124 | <hr> |
| 124 | 125 | </div> <!-- container --> |
| ... | ... | @@ -191,9 +192,7 @@ |
| 191 | 192 | var progress = distance/duration*100 + '%' |
| 192 | 193 | $('.progress-bar').css('width', progress).attr('aria-valuenow', progress); |
| 193 | 194 | }, 1000); |
| 194 | - | |
| 195 | 195 | {% end %} |
| 196 | - | |
| 197 | 196 | </script> |
| 198 | 197 | </body> |
| 199 | 198 | </html> | ... | ... |