Commit a54bd1fdff3868b7bd86f8f547f10e1849b80604
1 parent
2290803d
Exists in
master
and in
1 other branch
- corrected bugs in demo/ files.
- textarea, text and text_regex now remember last answer on practice mode.
Showing
5 changed files
with
33 additions
and
23 deletions
Show diff stats
demo/questions.yaml
| 1 | 1 | - |
| 2 | - ref: solar-system-mars | |
| 2 | + ref: solar-system-jupiter | |
| 3 | 3 | type: radio |
| 4 | - text: Choose the correct answer | |
| 4 | + text: Which one is the largest planet? | |
| 5 | 5 | options: |
| 6 | - - This one is correct | |
| 7 | - - Wrong | |
| 8 | - - Very wrong! | |
| 9 | - # optional | |
| 6 | + - Jupiter | |
| 7 | + - Mercury | |
| 8 | + - Mars | |
| 9 | + # optional, default is 0, True, True | |
| 10 | 10 | correct: 0 |
| 11 | 11 | shuffle: True |
| 12 | 12 | discount: True |
| 13 | 13 | hint: Just don't choose the wrong ones |
| 14 | 14 | # --------------------------------------------------------------------------- |
| 15 | 15 | - |
| 16 | - ref: solar-system-jupiter | |
| 16 | + ref: solar-system-mars | |
| 17 | 17 | type: checkbox |
| 18 | 18 | text: Which ones are correct? |
| 19 | 19 | options: |
| 20 | - - Yes | |
| 21 | - - No | |
| 22 | - - Yes | |
| 23 | - - Obvious one, not very important | |
| 20 | + - $1 > 0$ | |
| 21 | + - $-1 > 1$ | |
| 22 | + - $\sqrt{3} > \sqrt{2}$ | |
| 23 | + - $0 = 0$ | |
| 24 | 24 | correct: [1, -1, 1, 0.5] |
| 25 | + # optional | |
| 26 | + discount: True | |
| 25 | 27 | hint: There are three. |
| 26 | 28 | # --------------------------------------------------------------------------- |
| 27 | 29 | - |
| 28 | - ref: solar-system-venus | |
| 30 | + ref: question-v1 | |
| 29 | 31 | type: text |
| 30 | 32 | text: What's your favorite basic color? |
| 31 | 33 | correct: ['blue', 'green'] |
| 32 | 34 | hint: It's not red. |
| 33 | 35 | # --------------------------------------------------------------------------- |
| 34 | 36 | - |
| 35 | - ref: question-v1 | |
| 37 | + ref: question-v2 | |
| 36 | 38 | type: text_regex |
| 37 | - text: What's your favorite basic color? | |
| 39 | + text: What's my favorite basic color? | |
| 38 | 40 | correct: '[bB]lue' |
| 39 | 41 | hint: It's not red. |
| 40 | 42 | # --------------------------------------------------------------------------- |
| 41 | 43 | - |
| 42 | - ref: question-v2 | |
| 44 | + ref: question-colors | |
| 43 | 45 | type: textarea |
| 44 | 46 | text: Write names of the three basic colors. |
| 45 | 47 | correct: demo/correct-question.py |
| 46 | 48 | hint: They start by RGB and order does not matter. |
| 47 | 49 | # --------------------------------------------------------------------------- |
| 48 | 50 | - |
| 49 | - ref: question-v3 | |
| 51 | + ref: question-whatever | |
| 50 | 52 | type: generator |
| 51 | 53 | script: demo/generate-question.py |
| 52 | 54 | # the script should print a question in yaml format like the ones above. | ... | ... |
demo/test.yaml
| ... | ... | @@ -39,18 +39,24 @@ questions: |
| 39 | 39 | # choose 1 from the following 3 questions |
| 40 | 40 | - solar-system-mars |
| 41 | 41 | - solar-system-jupiter |
| 42 | - - solar-system-venus | |
| 43 | 42 | points: 0.5 |
| 44 | 43 | |
| 45 | 44 | # second |
| 46 | 45 | - ref: |
| 47 | 46 | - question-v1 |
| 48 | 47 | - question-v2 |
| 49 | - - question-v3 | |
| 50 | 48 | # points: 1.0 is the default, if not defined here. |
| 51 | 49 | |
| 52 | - # third | |
| 50 | + # 3. | |
| 51 | + - ref: | |
| 52 | + - question-colors | |
| 53 | + | |
| 54 | + # 4. | |
| 55 | + - ref: | |
| 56 | + - question-whatever | |
| 57 | + | |
| 58 | + # 5. | |
| 53 | 59 | - ref: one-question |
| 54 | 60 | |
| 55 | - # fourth | |
| 61 | + # 6. | |
| 56 | 62 | - another-question | ... | ... |
questions.py
| ... | ... | @@ -390,7 +390,7 @@ class QuestionTextArea(Question): |
| 390 | 390 | self['grade'] = float(value) |
| 391 | 391 | except (ValueError): |
| 392 | 392 | self['grade'] = 0.0 |
| 393 | - raise Exception('Correction of question "%s" returned nonfloat.' % self['ref']) | |
| 393 | + raise Exception('Correction of question "{0}" returned nonfloat "{1}".'.format(self['ref'], value)) | |
| 394 | 394 | |
| 395 | 395 | return self['grade'] |
| 396 | 396 | ... | ... |
templates/test.html
| ... | ... | @@ -178,9 +178,9 @@ |
| 178 | 178 | </div> |
| 179 | 179 | % endfor |
| 180 | 180 | % elif q['type'] in ('text', 'text_regex'): |
| 181 | - <input type="text" name="${q['ref']}" class="form-control"> | |
| 181 | + <input type="text" name="${q['ref']}" class="form-control" value="${q['answer'] if q['answer'] is not None else ''}"> | |
| 182 | 182 | % elif q['type'] == 'textarea': |
| 183 | - <textarea class="form-control" rows="8" name="${q['ref']}"></textarea> | |
| 183 | + <textarea class="form-control" rows="8" name="${q['ref']}">${q['answer'] if q['answer'] is not None else ''}</textarea> | |
| 184 | 184 | % endif |
| 185 | 185 | </fieldset> |
| 186 | 186 | ... | ... |