lms.model.testdata.scores

  1import typing
  2
  3import edq.util.time
  4
  5import lms.model.assignments
  6import lms.model.scores
  7import lms.model.testdata.assignments
  8import lms.model.testdata.courses
  9import lms.model.testdata.users
 10import lms.model.users
 11
 12# {course_name: {assignment_name: {user_name: score, ...}, ...}
 13COURSE_ASSIGNMENT_SCORES: typing.Dict[str, typing.Dict[str, typing.Dict[str, lms.model.scores.AssignmentScore]]] = {}
 14
 15COURSE_ASSIGNMENT_SCORES['Course 101'] = {
 16    'Homework 0': {
 17        'course-student': lms.model.scores.AssignmentScore(
 18            id = '110050101',
 19            assignment = lms.model.testdata.assignments.COURSE_ASSIGNMENTS['Course 101']['Homework 0'].to_query(),
 20            user = lms.model.testdata.users.COURSE_USERS['Course 101']['course-student'].to_query(),
 21            score = 2.0,
 22            graded_date = edq.util.time.Timestamp(1697406273000),
 23        ),
 24    },
 25}
 26
 27COURSE_ASSIGNMENT_SCORES['Extra Course'] = {
 28    'Assignment 1': {
 29        'extra-course-student-1': lms.model.scores.AssignmentScore(
 30            id = '130060101',
 31            assignment = lms.model.testdata.assignments.COURSE_ASSIGNMENTS['Extra Course']['Assignment 1'].to_query(),
 32            user = lms.model.testdata.users.COURSE_USERS['Extra Course']['extra-course-student-1'].to_query(),
 33            score = 10.0,
 34            graded_date = edq.util.time.Timestamp(1100000000000),
 35        ),
 36        'extra-course-student-2': lms.model.scores.AssignmentScore(
 37            id = '130070101',
 38            assignment = lms.model.testdata.assignments.COURSE_ASSIGNMENTS['Extra Course']['Assignment 1'].to_query(),
 39            user = lms.model.testdata.users.COURSE_USERS['Extra Course']['extra-course-student-2'].to_query(),
 40            score = 7.5,
 41            graded_date = edq.util.time.Timestamp(1100000000000),
 42        ),
 43        'extra-course-student-3': lms.model.scores.AssignmentScore(
 44            id = '130080101',
 45            assignment = lms.model.testdata.assignments.COURSE_ASSIGNMENTS['Extra Course']['Assignment 1'].to_query(),
 46            user = lms.model.testdata.users.COURSE_USERS['Extra Course']['extra-course-student-3'].to_query(),
 47            score = 5.0,
 48            graded_date = edq.util.time.Timestamp(1100000000000),
 49        ),
 50        'extra-course-student-4': lms.model.scores.AssignmentScore(
 51            id = '130090101',
 52            assignment = lms.model.testdata.assignments.COURSE_ASSIGNMENTS['Extra Course']['Assignment 1'].to_query(),
 53            user = lms.model.testdata.users.COURSE_USERS['Extra Course']['extra-course-student-4'].to_query(),
 54            score = 0.0,
 55            graded_date = edq.util.time.Timestamp(1100000000000),
 56        ),
 57    },
 58    'Assignment 2': {
 59        'extra-course-student-1': lms.model.scores.AssignmentScore(
 60            id = '130060201',
 61            assignment = lms.model.testdata.assignments.COURSE_ASSIGNMENTS['Extra Course']['Assignment 2'].to_query(),
 62            user = lms.model.testdata.users.COURSE_USERS['Extra Course']['extra-course-student-1'].to_query(),
 63            score = 20.0,
 64            graded_date = edq.util.time.Timestamp(1200000000000),
 65        ),
 66        'extra-course-student-2': lms.model.scores.AssignmentScore(
 67            id = '130070201',
 68            assignment = lms.model.testdata.assignments.COURSE_ASSIGNMENTS['Extra Course']['Assignment 2'].to_query(),
 69            user = lms.model.testdata.users.COURSE_USERS['Extra Course']['extra-course-student-2'].to_query(),
 70            score = 15.0,
 71            graded_date = edq.util.time.Timestamp(1200000000000),
 72        ),
 73        'extra-course-student-3': lms.model.scores.AssignmentScore(
 74            id = '130080201',
 75            assignment = lms.model.testdata.assignments.COURSE_ASSIGNMENTS['Extra Course']['Assignment 2'].to_query(),
 76            user = lms.model.testdata.users.COURSE_USERS['Extra Course']['extra-course-student-3'].to_query(),
 77            score = 10.0,
 78            graded_date = edq.util.time.Timestamp(1200000000000),
 79        ),
 80        'extra-course-student-4': lms.model.scores.AssignmentScore(
 81            id = '130090201',
 82            assignment = lms.model.testdata.assignments.COURSE_ASSIGNMENTS['Extra Course']['Assignment 2'].to_query(),
 83            user = lms.model.testdata.users.COURSE_USERS['Extra Course']['extra-course-student-4'].to_query(),
 84            score = 0.0,
 85            graded_date = edq.util.time.Timestamp(1200000000000),
 86        ),
 87    },
 88    'Assignment 3': {
 89        'extra-course-student-1': lms.model.scores.AssignmentScore(
 90            id = '130060301',
 91            assignment = lms.model.testdata.assignments.COURSE_ASSIGNMENTS['Extra Course']['Assignment 3'].to_query(),
 92            user = lms.model.testdata.users.COURSE_USERS['Extra Course']['extra-course-student-1'].to_query(),
 93            score = 30.0,
 94            graded_date = edq.util.time.Timestamp(1300000000000),
 95        ),
 96        'extra-course-student-2': lms.model.scores.AssignmentScore(
 97            id = '130070301',
 98            assignment = lms.model.testdata.assignments.COURSE_ASSIGNMENTS['Extra Course']['Assignment 3'].to_query(),
 99            user = lms.model.testdata.users.COURSE_USERS['Extra Course']['extra-course-student-2'].to_query(),
100            score = 22.5,
101            graded_date = edq.util.time.Timestamp(1300000000000),
102        ),
103        'extra-course-student-3': lms.model.scores.AssignmentScore(
104            id = '130080301',
105            assignment = lms.model.testdata.assignments.COURSE_ASSIGNMENTS['Extra Course']['Assignment 3'].to_query(),
106            user = lms.model.testdata.users.COURSE_USERS['Extra Course']['extra-course-student-3'].to_query(),
107            score = 15.0,
108            graded_date = edq.util.time.Timestamp(1300000000000),
109        ),
110    },
111}
112
113# {course_name: {assignment_name: {user_name: score, ...}, ...}
114COURSE_ASSIGNMENT_SCORES_UNRESOLVED: typing.Dict[str, typing.Dict[str, typing.Dict[str, lms.model.scores.AssignmentScore]]] = {}
115
116# {course_name: gradebook}
117COURSE_GRADEBOOKS: typing.Dict[str, lms.model.scores.Gradebook] = {}
118
119# {course_name: gradebook}
120COURSE_GRADEBOOKS_UNRESOLVED: typing.Dict[str, lms.model.scores.Gradebook] = {}
121
122def _load_unresolved_scores() -> None:
123    """ Load unresolved scores from resolved scores. """
124
125    for (course_name, assignment_scores) in COURSE_ASSIGNMENT_SCORES.items():
126        if (course_name not in COURSE_ASSIGNMENT_SCORES_UNRESOLVED):
127            COURSE_ASSIGNMENT_SCORES_UNRESOLVED[course_name] = {}
128
129        for (assignment_name, user_scores) in assignment_scores.items():
130            if (assignment_name not in COURSE_ASSIGNMENT_SCORES_UNRESOLVED[course_name]):
131                COURSE_ASSIGNMENT_SCORES_UNRESOLVED[course_name][assignment_name] = {}
132
133            for (user_name, old_score) in user_scores.items():
134                if ((old_score.assignment is None) or (old_score.user is None)):
135                    raise ValueError(f"None query for {course_name}.{assignment_name}.{user_name}.")
136
137                new_score = lms.model.scores.AssignmentScore(
138                    id = old_score.id,
139                    assignment = lms.model.assignments.AssignmentQuery(id = old_score.assignment.id),
140                    user = lms.model.users.UserQuery(id = old_score.user.id),
141                    score = old_score.score,
142                    graded_date = old_score.graded_date,
143                )
144
145                COURSE_ASSIGNMENT_SCORES_UNRESOLVED[course_name][assignment_name][user_name] = new_score
146
147def _load_gradebooks(
148        gradebooks: typing.Dict[str, lms.model.scores.Gradebook],
149        scores: typing.Dict[str, typing.Dict[str, typing.Dict[str, lms.model.scores.AssignmentScore]]],
150        get_assignment_query: typing.Callable,
151        get_user_query: typing.Callable,
152        ) -> None:
153    """ Load gradebooks from scores. """
154
155    for course_name in lms.model.testdata.courses.COURSES.keys():
156        assignments: typing.Any = lms.model.testdata.assignments.COURSE_ASSIGNMENTS[course_name].values()
157        assignment_queries = list(sorted([get_assignment_query(assignment) for assignment in assignments]))
158
159        users: typing.Any = lms.model.testdata.users.COURSE_USERS[course_name].values()
160        users = list(filter(lambda user: user.is_student(), users))
161        user_queries = list(sorted([get_user_query(user) for user in users]))
162
163        gradebook = lms.model.scores.Gradebook(assignment_queries, user_queries)
164
165        for assignments_users_scores in scores.get(course_name, {}).values():
166            for score in assignments_users_scores.values():
167                gradebook.add(score)
168
169        gradebooks[course_name] = gradebook
170
171_load_unresolved_scores()
172
173_load_gradebooks(
174    COURSE_GRADEBOOKS,
175    COURSE_ASSIGNMENT_SCORES,
176    lambda assignment: assignment.to_query(),
177    lambda user: user.to_query(),
178)
179
180_load_gradebooks(
181    COURSE_GRADEBOOKS_UNRESOLVED,
182    COURSE_ASSIGNMENT_SCORES_UNRESOLVED,
183    lambda assignment: lms.model.assignments.AssignmentQuery(id = assignment.id),
184    lambda user: lms.model.users.UserQuery(id = user.id),
185)
COURSE_ASSIGNMENT_SCORES: Dict[str, Dict[str, Dict[str, lms.model.scores.AssignmentScore]]] = {'Course 101': {'Homework 0': {'course-student': {"assignment": {"id": "110000100", "name": "Homework 0"}, "comment": null, "extra_fields": {}, "graded_date": 1697406273000, "id": "110050101", "score": 2.0, "submission_date": null, "user": {"email": "course-student@test.edulinq.org", "id": "100050000", "name": "course-student"}}}}, 'Extra Course': {'Assignment 1': {'extra-course-student-1': {"assignment": {"id": "130000100", "name": "Assignment 1"}, "comment": null, "extra_fields": {}, "graded_date": 1100000000000, "id": "130060101", "score": 10.0, "submission_date": null, "user": {"email": "extra-course-student-1@test.edulinq.org", "id": "100060000", "name": "extra-course-student-1"}}, 'extra-course-student-2': {"assignment": {"id": "130000100", "name": "Assignment 1"}, "comment": null, "extra_fields": {}, "graded_date": 1100000000000, "id": "130070101", "score": 7.5, "submission_date": null, "user": {"email": "extra-course-student-2@test.edulinq.org", "id": "100070000", "name": "extra-course-student-2"}}, 'extra-course-student-3': {"assignment": {"id": "130000100", "name": "Assignment 1"}, "comment": null, "extra_fields": {}, "graded_date": 1100000000000, "id": "130080101", "score": 5.0, "submission_date": null, "user": {"email": "extra-course-student-3@test.edulinq.org", "id": "100080000", "name": "extra-course-student-3"}}, 'extra-course-student-4': {"assignment": {"id": "130000100", "name": "Assignment 1"}, "comment": null, "extra_fields": {}, "graded_date": 1100000000000, "id": "130090101", "score": 0.0, "submission_date": null, "user": {"email": "extra-course-student-4@test.edulinq.org", "id": "100090000", "name": "extra-course-student-4"}}}, 'Assignment 2': {'extra-course-student-1': {"assignment": {"id": "130000200", "name": "Assignment 2"}, "comment": null, "extra_fields": {}, "graded_date": 1200000000000, "id": "130060201", "score": 20.0, "submission_date": null, "user": {"email": "extra-course-student-1@test.edulinq.org", "id": "100060000", "name": "extra-course-student-1"}}, 'extra-course-student-2': {"assignment": {"id": "130000200", "name": "Assignment 2"}, "comment": null, "extra_fields": {}, "graded_date": 1200000000000, "id": "130070201", "score": 15.0, "submission_date": null, "user": {"email": "extra-course-student-2@test.edulinq.org", "id": "100070000", "name": "extra-course-student-2"}}, 'extra-course-student-3': {"assignment": {"id": "130000200", "name": "Assignment 2"}, "comment": null, "extra_fields": {}, "graded_date": 1200000000000, "id": "130080201", "score": 10.0, "submission_date": null, "user": {"email": "extra-course-student-3@test.edulinq.org", "id": "100080000", "name": "extra-course-student-3"}}, 'extra-course-student-4': {"assignment": {"id": "130000200", "name": "Assignment 2"}, "comment": null, "extra_fields": {}, "graded_date": 1200000000000, "id": "130090201", "score": 0.0, "submission_date": null, "user": {"email": "extra-course-student-4@test.edulinq.org", "id": "100090000", "name": "extra-course-student-4"}}}, 'Assignment 3': {'extra-course-student-1': {"assignment": {"id": "130000300", "name": "Assignment 3"}, "comment": null, "extra_fields": {}, "graded_date": 1300000000000, "id": "130060301", "score": 30.0, "submission_date": null, "user": {"email": "extra-course-student-1@test.edulinq.org", "id": "100060000", "name": "extra-course-student-1"}}, 'extra-course-student-2': {"assignment": {"id": "130000300", "name": "Assignment 3"}, "comment": null, "extra_fields": {}, "graded_date": 1300000000000, "id": "130070301", "score": 22.5, "submission_date": null, "user": {"email": "extra-course-student-2@test.edulinq.org", "id": "100070000", "name": "extra-course-student-2"}}, 'extra-course-student-3': {"assignment": {"id": "130000300", "name": "Assignment 3"}, "comment": null, "extra_fields": {}, "graded_date": 1300000000000, "id": "130080301", "score": 15.0, "submission_date": null, "user": {"email": "extra-course-student-3@test.edulinq.org", "id": "100080000", "name": "extra-course-student-3"}}}}}
COURSE_ASSIGNMENT_SCORES_UNRESOLVED: Dict[str, Dict[str, Dict[str, lms.model.scores.AssignmentScore]]] = {'Course 101': {'Homework 0': {'course-student': {"assignment": {"id": "110000100", "name": null}, "comment": null, "extra_fields": {}, "graded_date": 1697406273000, "id": "110050101", "score": 2.0, "submission_date": null, "user": {"email": null, "id": "100050000", "name": null}}}}, 'Extra Course': {'Assignment 1': {'extra-course-student-1': {"assignment": {"id": "130000100", "name": null}, "comment": null, "extra_fields": {}, "graded_date": 1100000000000, "id": "130060101", "score": 10.0, "submission_date": null, "user": {"email": null, "id": "100060000", "name": null}}, 'extra-course-student-2': {"assignment": {"id": "130000100", "name": null}, "comment": null, "extra_fields": {}, "graded_date": 1100000000000, "id": "130070101", "score": 7.5, "submission_date": null, "user": {"email": null, "id": "100070000", "name": null}}, 'extra-course-student-3': {"assignment": {"id": "130000100", "name": null}, "comment": null, "extra_fields": {}, "graded_date": 1100000000000, "id": "130080101", "score": 5.0, "submission_date": null, "user": {"email": null, "id": "100080000", "name": null}}, 'extra-course-student-4': {"assignment": {"id": "130000100", "name": null}, "comment": null, "extra_fields": {}, "graded_date": 1100000000000, "id": "130090101", "score": 0.0, "submission_date": null, "user": {"email": null, "id": "100090000", "name": null}}}, 'Assignment 2': {'extra-course-student-1': {"assignment": {"id": "130000200", "name": null}, "comment": null, "extra_fields": {}, "graded_date": 1200000000000, "id": "130060201", "score": 20.0, "submission_date": null, "user": {"email": null, "id": "100060000", "name": null}}, 'extra-course-student-2': {"assignment": {"id": "130000200", "name": null}, "comment": null, "extra_fields": {}, "graded_date": 1200000000000, "id": "130070201", "score": 15.0, "submission_date": null, "user": {"email": null, "id": "100070000", "name": null}}, 'extra-course-student-3': {"assignment": {"id": "130000200", "name": null}, "comment": null, "extra_fields": {}, "graded_date": 1200000000000, "id": "130080201", "score": 10.0, "submission_date": null, "user": {"email": null, "id": "100080000", "name": null}}, 'extra-course-student-4': {"assignment": {"id": "130000200", "name": null}, "comment": null, "extra_fields": {}, "graded_date": 1200000000000, "id": "130090201", "score": 0.0, "submission_date": null, "user": {"email": null, "id": "100090000", "name": null}}}, 'Assignment 3': {'extra-course-student-1': {"assignment": {"id": "130000300", "name": null}, "comment": null, "extra_fields": {}, "graded_date": 1300000000000, "id": "130060301", "score": 30.0, "submission_date": null, "user": {"email": null, "id": "100060000", "name": null}}, 'extra-course-student-2': {"assignment": {"id": "130000300", "name": null}, "comment": null, "extra_fields": {}, "graded_date": 1300000000000, "id": "130070301", "score": 22.5, "submission_date": null, "user": {"email": null, "id": "100070000", "name": null}}, 'extra-course-student-3': {"assignment": {"id": "130000300", "name": null}, "comment": null, "extra_fields": {}, "graded_date": 1300000000000, "id": "130080301", "score": 15.0, "submission_date": null, "user": {"email": null, "id": "100080000", "name": null}}}}}
COURSE_GRADEBOOKS: Dict[str, lms.model.scores.Gradebook] = {'Course 101': {"_entries": {"110000100::100050000": {"assignment": {"id": "110000100", "name": "Homework 0"}, "comment": null, "extra_fields": {}, "graded_date": 1697406273000, "id": "110050101", "score": 2.0, "submission_date": null, "user": {"email": "course-student@test.edulinq.org", "id": "100050000", "name": "course-student"}}}, "assignments": [{"id": "110000100", "name": "Homework 0"}], "extra_fields": {}, "users": [{"email": "course-student@test.edulinq.org", "id": "100050000", "name": "course-student"}]}, 'Course Using Different Languages': {"_entries": {}, "assignments": [{"id": "120000100", "name": "A Simple Bash Assignment"}, {"id": "120000200", "name": "A Simple C++ Assignment"}, {"id": "120000300", "name": "A Simple Java Assignment"}], "extra_fields": {}, "users": [{"email": "course-student@test.edulinq.org", "id": "100050000", "name": "course-student"}]}, 'Extra Course': {"_entries": {"130000100::100060000": {"assignment": {"id": "130000100", "name": "Assignment 1"}, "comment": null, "extra_fields": {}, "graded_date": 1100000000000, "id": "130060101", "score": 10.0, "submission_date": null, "user": {"email": "extra-course-student-1@test.edulinq.org", "id": "100060000", "name": "extra-course-student-1"}}, "130000100::100070000": {"assignment": {"id": "130000100", "name": "Assignment 1"}, "comment": null, "extra_fields": {}, "graded_date": 1100000000000, "id": "130070101", "score": 7.5, "submission_date": null, "user": {"email": "extra-course-student-2@test.edulinq.org", "id": "100070000", "name": "extra-course-student-2"}}, "130000100::100080000": {"assignment": {"id": "130000100", "name": "Assignment 1"}, "comment": null, "extra_fields": {}, "graded_date": 1100000000000, "id": "130080101", "score": 5.0, "submission_date": null, "user": {"email": "extra-course-student-3@test.edulinq.org", "id": "100080000", "name": "extra-course-student-3"}}, "130000100::100090000": {"assignment": {"id": "130000100", "name": "Assignment 1"}, "comment": null, "extra_fields": {}, "graded_date": 1100000000000, "id": "130090101", "score": 0.0, "submission_date": null, "user": {"email": "extra-course-student-4@test.edulinq.org", "id": "100090000", "name": "extra-course-student-4"}}, "130000200::100060000": {"assignment": {"id": "130000200", "name": "Assignment 2"}, "comment": null, "extra_fields": {}, "graded_date": 1200000000000, "id": "130060201", "score": 20.0, "submission_date": null, "user": {"email": "extra-course-student-1@test.edulinq.org", "id": "100060000", "name": "extra-course-student-1"}}, "130000200::100070000": {"assignment": {"id": "130000200", "name": "Assignment 2"}, "comment": null, "extra_fields": {}, "graded_date": 1200000000000, "id": "130070201", "score": 15.0, "submission_date": null, "user": {"email": "extra-course-student-2@test.edulinq.org", "id": "100070000", "name": "extra-course-student-2"}}, "130000200::100080000": {"assignment": {"id": "130000200", "name": "Assignment 2"}, "comment": null, "extra_fields": {}, "graded_date": 1200000000000, "id": "130080201", "score": 10.0, "submission_date": null, "user": {"email": "extra-course-student-3@test.edulinq.org", "id": "100080000", "name": "extra-course-student-3"}}, "130000200::100090000": {"assignment": {"id": "130000200", "name": "Assignment 2"}, "comment": null, "extra_fields": {}, "graded_date": 1200000000000, "id": "130090201", "score": 0.0, "submission_date": null, "user": {"email": "extra-course-student-4@test.edulinq.org", "id": "100090000", "name": "extra-course-student-4"}}, "130000300::100060000": {"assignment": {"id": "130000300", "name": "Assignment 3"}, "comment": null, "extra_fields": {}, "graded_date": 1300000000000, "id": "130060301", "score": 30.0, "submission_date": null, "user": {"email": "extra-course-student-1@test.edulinq.org", "id": "100060000", "name": "extra-course-student-1"}}, "130000300::100070000": {"assignment": {"id": "130000300", "name": "Assignment 3"}, "comment": null, "extra_fields": {}, "graded_date": 1300000000000, "id": "130070301", "score": 22.5, "submission_date": null, "user": {"email": "extra-course-student-2@test.edulinq.org", "id": "100070000", "name": "extra-course-student-2"}}, "130000300::100080000": {"assignment": {"id": "130000300", "name": "Assignment 3"}, "comment": null, "extra_fields": {}, "graded_date": 1300000000000, "id": "130080301", "score": 15.0, "submission_date": null, "user": {"email": "extra-course-student-3@test.edulinq.org", "id": "100080000", "name": "extra-course-student-3"}}}, "assignments": [{"id": "130000100", "name": "Assignment 1"}, {"id": "130000200", "name": "Assignment 2"}, {"id": "130000300", "name": "Assignment 3"}], "extra_fields": {}, "users": [{"email": "extra-course-student-1@test.edulinq.org", "id": "100060000", "name": "extra-course-student-1"}, {"email": "extra-course-student-2@test.edulinq.org", "id": "100070000", "name": "extra-course-student-2"}, {"email": "extra-course-student-3@test.edulinq.org", "id": "100080000", "name": "extra-course-student-3"}, {"email": "extra-course-student-4@test.edulinq.org", "id": "100090000", "name": "extra-course-student-4"}]}}
COURSE_GRADEBOOKS_UNRESOLVED: Dict[str, lms.model.scores.Gradebook] = {'Course 101': {"_entries": {"110000100::100050000": {"assignment": {"id": "110000100", "name": null}, "comment": null, "extra_fields": {}, "graded_date": 1697406273000, "id": "110050101", "score": 2.0, "submission_date": null, "user": {"email": null, "id": "100050000", "name": null}}}, "assignments": [{"id": "110000100", "name": null}], "extra_fields": {}, "users": [{"email": null, "id": "100050000", "name": null}]}, 'Course Using Different Languages': {"_entries": {}, "assignments": [{"id": "120000100", "name": null}, {"id": "120000200", "name": null}, {"id": "120000300", "name": null}], "extra_fields": {}, "users": [{"email": null, "id": "100050000", "name": null}]}, 'Extra Course': {"_entries": {"130000100::100060000": {"assignment": {"id": "130000100", "name": null}, "comment": null, "extra_fields": {}, "graded_date": 1100000000000, "id": "130060101", "score": 10.0, "submission_date": null, "user": {"email": null, "id": "100060000", "name": null}}, "130000100::100070000": {"assignment": {"id": "130000100", "name": null}, "comment": null, "extra_fields": {}, "graded_date": 1100000000000, "id": "130070101", "score": 7.5, "submission_date": null, "user": {"email": null, "id": "100070000", "name": null}}, "130000100::100080000": {"assignment": {"id": "130000100", "name": null}, "comment": null, "extra_fields": {}, "graded_date": 1100000000000, "id": "130080101", "score": 5.0, "submission_date": null, "user": {"email": null, "id": "100080000", "name": null}}, "130000100::100090000": {"assignment": {"id": "130000100", "name": null}, "comment": null, "extra_fields": {}, "graded_date": 1100000000000, "id": "130090101", "score": 0.0, "submission_date": null, "user": {"email": null, "id": "100090000", "name": null}}, "130000200::100060000": {"assignment": {"id": "130000200", "name": null}, "comment": null, "extra_fields": {}, "graded_date": 1200000000000, "id": "130060201", "score": 20.0, "submission_date": null, "user": {"email": null, "id": "100060000", "name": null}}, "130000200::100070000": {"assignment": {"id": "130000200", "name": null}, "comment": null, "extra_fields": {}, "graded_date": 1200000000000, "id": "130070201", "score": 15.0, "submission_date": null, "user": {"email": null, "id": "100070000", "name": null}}, "130000200::100080000": {"assignment": {"id": "130000200", "name": null}, "comment": null, "extra_fields": {}, "graded_date": 1200000000000, "id": "130080201", "score": 10.0, "submission_date": null, "user": {"email": null, "id": "100080000", "name": null}}, "130000200::100090000": {"assignment": {"id": "130000200", "name": null}, "comment": null, "extra_fields": {}, "graded_date": 1200000000000, "id": "130090201", "score": 0.0, "submission_date": null, "user": {"email": null, "id": "100090000", "name": null}}, "130000300::100060000": {"assignment": {"id": "130000300", "name": null}, "comment": null, "extra_fields": {}, "graded_date": 1300000000000, "id": "130060301", "score": 30.0, "submission_date": null, "user": {"email": null, "id": "100060000", "name": null}}, "130000300::100070000": {"assignment": {"id": "130000300", "name": null}, "comment": null, "extra_fields": {}, "graded_date": 1300000000000, "id": "130070301", "score": 22.5, "submission_date": null, "user": {"email": null, "id": "100070000", "name": null}}, "130000300::100080000": {"assignment": {"id": "130000300", "name": null}, "comment": null, "extra_fields": {}, "graded_date": 1300000000000, "id": "130080301", "score": 15.0, "submission_date": null, "user": {"email": null, "id": "100080000", "name": null}}}, "assignments": [{"id": "130000100", "name": null}, {"id": "130000200", "name": null}, {"id": "130000300", "name": null}], "extra_fields": {}, "users": [{"email": null, "id": "100060000", "name": null}, {"email": null, "id": "100070000", "name": null}, {"email": null, "id": "100080000", "name": null}, {"email": null, "id": "100090000", "name": null}]}}