Esempio n. 1
0
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]
Esempio n. 3
0
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]
Esempio n. 4
0
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]