def get_proctored_exam_results(course_key, features): """ Return info about proctored exam results in a course as a dict. """ comment_statuses = ['Rules Violation', 'Suspicious'] def extract_details(exam_attempt, features): """ Build dict containing information about a single student exam_attempt. """ proctored_exam = dict( (feature, exam_attempt.get(feature)) for feature in features if feature in exam_attempt ) for status in comment_statuses: comment_list = exam_attempt.get( '{status} Comments'.format(status=status), [] ) proctored_exam.update({ '{status} Count'.format(status=status): len(comment_list), '{status} Comments'.format(status=status): '; '.join(comment_list), }) return proctored_exam exam_attempts = get_exam_violation_report(course_key) return [extract_details(exam_attempt, features) for exam_attempt in exam_attempts]
def get_proctored_exam_results(course_key, features): """ Return info about proctored exam results in a course as a dict. """ comment_statuses = ['Rules Violation', 'Suspicious'] def extract_details(exam_attempt, features, course_enrollments): """ Build dict containing information about a single student exam_attempt. """ proctored_exam = { feature: exam_attempt.get(feature) for feature in features if feature in exam_attempt } for status in comment_statuses: comment_list = exam_attempt.get( f'{status} Comments', [] ) proctored_exam.update({ f'{status} Count': len(comment_list), f'{status} Comments': '; '.join(comment_list), }) try: proctored_exam['track'] = course_enrollments[exam_attempt['user_id']] except KeyError: proctored_exam['track'] = 'Unknown' return proctored_exam exam_attempts = get_exam_violation_report(course_key) course_enrollments = get_enrollments_for_course(exam_attempts) return [extract_details(exam_attempt, features, course_enrollments) for exam_attempt in exam_attempts]
def get_proctored_exam_results(course_key, features): """ Return info about proctored exam results in a course as a dict. """ comment_statuses = ['Rules Violation', 'Suspicious'] def extract_details(exam_attempt, features, course_enrollments): """ Build dict containing information about a single student exam_attempt. """ proctored_exam = dict( (feature, exam_attempt.get(feature)) for feature in features if feature in exam_attempt ) for status in comment_statuses: comment_list = exam_attempt.get( u'{status} Comments'.format(status=status), [] ) proctored_exam.update({ u'{status} Count'.format(status=status): len(comment_list), u'{status} Comments'.format(status=status): '; '.join(comment_list), }) try: proctored_exam['track'] = course_enrollments[exam_attempt['user_id']] except KeyError: proctored_exam['track'] = 'Unknown' return proctored_exam exam_attempts = get_exam_violation_report(course_key) course_enrollments = get_enrollments_for_course(exam_attempts) return [extract_details(exam_attempt, features, course_enrollments) for exam_attempt in exam_attempts]