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 ddc5f45 commit cf37f65
Show file tree
Hide file tree
Showing 2 changed files with 0 additions and 13 deletions.
4 changes: 0 additions & 4 deletions AUTHORS
Original file line number Diff line number Diff line change
Expand Up @@ -225,9 +225,6 @@ Alessandro Verdura <[email protected]>
Sven Marnach <[email protected]>
Richard Moch <[email protected]>
Albert Liang <[email protected]>
<<<<<<< HEAD

=======
Pan Luo <[email protected]>
Tyler Nickerson <[email protected]>
Vedran Karačić <[email protected]>
Expand Down Expand Up @@ -257,4 +254,3 @@ Douglas Hall <[email protected]>
Awais Jibran <[email protected]>
Muhammad Rehan <[email protected]>
Shawn Milochik <[email protected]>
>>>>>>> 5d88300... Added max score to output of get_student_grade_summary_data.
Original file line number Diff line number Diff line change
Expand Up @@ -67,11 +67,6 @@ def test_download_raw_grades_dump(self):
'''
self.assertEqual(body, expected_csv, msg)

<<<<<<< HEAD
def test_grade_summary_data(self):
"""
Test grade summary data report generation
=======
def get_expected_grade_data(
self, get_grades=True, get_raw_scores=False,
use_offline=False, get_score_max=False):
Expand All @@ -89,7 +84,6 @@ def get_expected_grade_data(
the actual score and total possible are returned. For example, if the
student got one out of two possible points, the values (1, 2) will be
returned instead of 0.5.
>>>>>>> 5d88300... Added max score to output of get_student_grade_summary_data.
"""
self.answer_question()

Expand Down Expand Up @@ -124,8 +118,6 @@ def get_expected_grade_data(
]
}

<<<<<<< HEAD
=======
# The first five columns contain the student ID, username,
# full name, and e-mail addresses.
non_grade_columns = 5
Expand Down Expand Up @@ -283,7 +275,6 @@ def compare_data(self, data, expected_data):
)

# Ensure the student info and assignment names are as expected.
>>>>>>> 5d88300... Added max score to output of get_student_grade_summary_data.
for key in ['assignments', 'header']:
self.assertListEqual(expected_data[key], data[key])

Expand Down

0 comments on commit cf37f65

Please sign in to comment.