Commit 969c75a7 by Nimisha Asthagiri

Fix for grade assertions

parent d772cb0a
......@@ -108,7 +108,10 @@ def get_score(submissions_scores, csm_scores, persisted_block, block):
_get_score_from_persisted_or_latest_block(persisted_block, block, weight)
)
assert weighted_possible is not None
if weighted_possible is None or weighted_earned is None:
return None
else:
has_valid_denominator = weighted_possible > 0.0
graded = _get_graded_from_block(persisted_block, block) if has_valid_denominator else False
......@@ -191,6 +194,9 @@ def _get_score_from_persisted_or_latest_block(persisted_block, block, weight):
else:
raw_possible = block.transformer_data[GradesTransformer].max_score
if raw_possible is None:
return (raw_earned, raw_possible) + (None, None)
else:
return (raw_earned, raw_possible) + weighted_score(raw_earned, raw_possible, weight)
......
......@@ -3,6 +3,7 @@ Grades Transformer
"""
from django.test.client import RequestFactory
from functools import reduce as functools_reduce
from logging import getLogger
from courseware.model_data import FieldDataCache
from courseware.module_render import get_module_for_descriptor
......@@ -11,6 +12,9 @@ from openedx.core.lib.block_structure.transformer import BlockStructureTransform
from openedx.core.djangoapps.util.user_utils import SystemUser
log = getLogger(__name__)
class GradesTransformer(BlockStructureTransformer):
"""
The GradesTransformer collects grading information and stores it on
......@@ -119,8 +123,10 @@ class GradesTransformer(BlockStructureTransformer):
Collect the `max_score` from the given module, storing it as a
`transformer_block_field` associated with the `GradesTransformer`.
"""
score = module.max_score()
block_structure.set_transformer_block_field(module.location, cls, 'max_score', score)
max_score = module.max_score()
block_structure.set_transformer_block_field(module.location, cls, 'max_score', max_score)
if max_score is None:
log.warning("GradesTransformer: max_score is None for {}".format(module.location))
@staticmethod
def _iter_scorable_xmodules(block_structure):
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment