Esempio n. 1
0
def get_enrollment_overviews(user, program, enrollments, request):
    """
    Get a list of overviews for a user's course run enrollments within a program.

    Arguments:
        user (User)
        program (dict)
        enrollments (iterable[CourseEnrollment])
        request (HttpRequest): Source HTTP request. Needed for URL generation.

    Returns list[dict]
    """
    overviews_by_course_key = {
        enrollment.course.id: enrollment.course
        for enrollment in enrollments
    }
    course_keys = list(overviews_by_course_key.keys())
    certficates_by_course_key = get_certificates_for_user_by_course_keys(
        user, course_keys)
    resume_urls_by_course_key = get_resume_urls_for_enrollments(
        user, enrollments)
    return [
        get_single_enrollment_overview(
            user=user,
            program=program,
            course_overview=overviews_by_course_key[enrollment.course_id],
            certificate_info=certficates_by_course_key.get(
                enrollment.course_id, {}),
            relative_resume_url=resume_urls_by_course_key.get(
                enrollment.course_id),
            request=request,
        ) for enrollment in enrollments
    ]
Esempio n. 2
0
 def test_get_certificates_for_user_by_course_keys(self):
     """
     Test to get certificates for a user for certain course keys,
     in a dictionary indexed by those course keys.
     """
     certs = certs_api.get_certificates_for_user_by_course_keys(
         user=self.student,
         course_keys={self.web_cert_course.id, self.no_cert_course.id},
     )
     assert set(certs.keys()) == {self.web_cert_course.id}
     cert = certs[self.web_cert_course.id]
     self.assertEqual(cert['username'], self.student.username)
     self.assertEqual(cert['course_key'], self.web_cert_course.id)
     self.assertEqual(cert['download_url'], 'www.google.com')