Skip to content

Commit

Permalink
[LTI Provider] Grade passback for non-leaf blocks.
Browse files Browse the repository at this point in the history
This change allows graded assignments to be added to a campus LMS
regardless of the granularity at which the problem sits. Previously
a grade could only be returned if the usage ID for the problem itself
was specified in the LTI launch.

The code assumes that courses taking advantage of this functionality
are arranged in a hiearchy (with sections being parents to verticals,
and verticals being parents to problems). When a grading event occurs
it traverses the parent hiearchy to identify any previous graded LTI
launches for which the new scoring event should generate a grade
update. It then calculates and sends scores to each of those outcome
services.

Since grade calculation is an expensive operation, the code optimizes
the case where a problem has been added only once as a leaf unit. In
that case it is able to behave as before, just taking the grade from
the signal without having to calculate grades for the whole course.
  • Loading branch information
mcgachey authored and amir-qayyum-khan committed Feb 19, 2016
1 parent cf37f65 commit bbb0c7f
Showing 1 changed file with 1 addition and 2 deletions.
3 changes: 1 addition & 2 deletions lms/djangoapps/courseware/tests/test_grades.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,8 @@
from django.http import Http404

from django.test import TestCase
from django.test.client import RequestFactory

from mock import patch, MagicMock
from mock import MagicMock
from django.test.client import RequestFactory

from mock import patch
Expand Down

0 comments on commit bbb0c7f

Please sign in to comment.