in utils/scripts/lti_assignment_gradeimport.py [0:0]
def main(user_email, final_grade_percentage):
for email in EMAILS_TO_BE_REPLACED:
if email.get("zybooks_email") == user_email:
write_log(
f"replaced zybooks email {user_email} with clp email {email.get('clp_email')}",
"data_collection_changes.txt")
user_email = email.get("clp_email")
if user_email in SKIP_EMAILS:
write_log(f"skipping inactive student with {user_email}",
"data_collection_changes.txt")
return
# get user id using email
user_data = User.find_by_email(user_email)
if not user_data:
write_log(f"user with email not found {user_email}",
"data_collection_errors.txt")
return
# query course enrollment to get section id, classroom id
all_user_course_details = CourseEnrollmentMapping.find_by_user(
user_data.user_id)
user_course_details = None
# # handle for multiple sections
if len(all_user_course_details) > 1:
for course in all_user_course_details:
if "CSE110" in course.section.name:
user_course_details = course
break
else:
if all_user_course_details and "CSE110" in all_user_course_details[
0].section.name:
user_course_details = all_user_course_details[0]
else:
write_log(f"something wrong for student with email {user_email}",
"data_collection_errors.txt")
return
if not user_course_details:
return
section_id = user_course_details.section.id
# fetch lti assignment using the lti assignment title and context id/section id
all_lti_assignments = LTIAssignment.collection.filter("context_id", "==",
section_id).fetch()
lti_assignment = None
for assignment in list(all_lti_assignments):
# all_assignments.append(assignment)
if assignment.lti_assignment_title == LTI_ASSIGNMENT_TITLE:
lti_assignment = assignment
break
if lti_assignment is None:
write_log(f"user found in section {user_course_details.section.name}",
"data_collection_errors.txt")
# send student submissions using course work id, grades and email
lti_assignment_max_points = None
if lti_assignment:
lti_assignment_max_points = lti_assignment.max_points
course_work_id = None
if lti_assignment:
course_work_id = lti_assignment.course_work_id
data_to_append = {
"user_id": user_data.user_id,
"user_email": user_email,
"section_id": section_id,
"section_name": user_course_details.section.name,
"lti_assignment_title": LTI_ASSIGNMENT_TITLE,
"lti_max_points": lti_assignment_max_points,
"course_work_id": course_work_id,
"final_grade_percentage": final_grade_percentage,
"classroom_id": user_course_details.section.classroom_id
}
FINAL_JSON.append(data_to_append)