Commit e84100c24784f939ccb13956251abdec14b3a25b
1 parent
3f0b10f3
Exists in
master
and in
1 other branch
- fixed bug in checkbox question when correcting with [0,...,0].
Showing
1 changed file
with
13 additions
and
8 deletions
Show diff stats
questions.py
| ... | ... | @@ -266,16 +266,21 @@ class QuestionCheckbox(Question): |
| 266 | 266 | self['grade'] = 0.0 |
| 267 | 267 | else: |
| 268 | 268 | # answered |
| 269 | - x = 0.0 | |
| 269 | + sum_abs = sum(abs(p) for p in self['correct']) | |
| 270 | + if sum_abs < 1e-6: # in case correct: [0,0,0,0,0] | |
| 271 | + self['grade'] = 0.0 | |
| 270 | 272 | |
| 271 | - if self['discount']: | |
| 272 | - for i, p in enumerate(self['correct']): | |
| 273 | - x += p if str(i) in self['answer'] else -p | |
| 274 | - self['grade'] = x / sum(abs(p) for p in self['correct']) | |
| 275 | 273 | else: |
| 276 | - for i, p in enumerate(self['correct']): | |
| 277 | - x += p if str(i) in self['answer'] else 0.0 | |
| 278 | - self['grade'] = x / sum(abs(p) for p in self['correct']) | |
| 274 | + x = 0.0 | |
| 275 | + | |
| 276 | + if self['discount']: | |
| 277 | + for i, p in enumerate(self['correct']): | |
| 278 | + x += p if str(i) in self['answer'] else -p | |
| 279 | + else: | |
| 280 | + for i, p in enumerate(self['correct']): | |
| 281 | + x += p if str(i) in self['answer'] else 0.0 | |
| 282 | + | |
| 283 | + self['grade'] = x / sum_abs | |
| 279 | 284 | |
| 280 | 285 | return self['grade'] |
| 281 | 286 | ... | ... |