diff --git a/questions.py b/questions.py index 0386a1c..06d60a6 100644 --- a/questions.py +++ b/questions.py @@ -266,16 +266,21 @@ class QuestionCheckbox(Question): self['grade'] = 0.0 else: # answered - x = 0.0 + sum_abs = sum(abs(p) for p in self['correct']) + if sum_abs < 1e-6: # in case correct: [0,0,0,0,0] + self['grade'] = 0.0 - if self['discount']: - for i, p in enumerate(self['correct']): - x += p if str(i) in self['answer'] else -p - self['grade'] = x / sum(abs(p) for p in self['correct']) else: - for i, p in enumerate(self['correct']): - x += p if str(i) in self['answer'] else 0.0 - self['grade'] = x / sum(abs(p) for p in self['correct']) + x = 0.0 + + if self['discount']: + for i, p in enumerate(self['correct']): + x += p if str(i) in self['answer'] else -p + else: + for i, p in enumerate(self['correct']): + x += p if str(i) in self['answer'] else 0.0 + + self['grade'] = x / sum_abs return self['grade'] -- libgit2 0.21.2