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,16 +266,21 @@ class QuestionCheckbox(Question): | ||
| 266 | self['grade'] = 0.0 | 266 | self['grade'] = 0.0 |
| 267 | else: | 267 | else: |
| 268 | # answered | 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 | else: | 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 | return self['grade'] | 285 | return self['grade'] |
| 281 | 286 |