Beispiel #1
0
    def test_get_course_enrollment(self, course_modes, enrollment_mode):
        self._create_course_modes(course_modes)

        # Try to get an enrollment before it exists.
        result = data.get_course_enrollment(self.user.username, unicode(self.course.id))
        self.assertIsNone(result)

        # Create the original enrollment.
        enrollment = data.create_course_enrollment(self.user.username, unicode(self.course.id), enrollment_mode, True)
        # Get the enrollment and compare it to the original.
        result = data.get_course_enrollment(self.user.username, unicode(self.course.id))
        self.assertEqual(self.user.username, result["user"])
        self.assertEqual(enrollment, result)
Beispiel #2
0
    def _get_single_user_grade(self, request, course_key):
        """
        Returns a grade response for the user object corresponding to the request's 'username' parameter,
        or the current request.user if no 'username' was provided.
        Args:
            request (Request): django request object to check for username or request.user object
            course_key (CourseLocator): The course to retrieve user grades for.

        Returns:
            A serializable list of grade responses
        """
        if 'username' in request.GET:
            username = request.GET.get('username')
        else:
            username = request.user.username

        grade_user = USER_MODEL.objects.get(username=username)

        if not enrollment_data.get_course_enrollment(username,
                                                     str(course_key)):
            raise CourseEnrollment.DoesNotExist

        course_grade = CourseGradeFactory().read(grade_user,
                                                 course_key=course_key)
        return Response(
            [self._make_grade_response(grade_user, course_key, course_grade)])
Beispiel #3
0
    def _get_single_user(self, request, course_key):
        """
        Returns a single USER_MODEL object corresponding to the request's `username` parameter,
        or the current `request.user` if no `username` was provided.
        Args:
            request (Request): django request object to check for username or request.user object
            course_key (CourseLocator): The course to retrieve user grades for.

        Returns:
            A USER_MODEL object.

        Raises:
            USER_MODEL.DoesNotExist if no such user exists.
            CourseEnrollment.DoesNotExist if the user is not enrolled in the given course.
        """
        if 'username' in request.GET:
            username = request.GET.get('username')
        else:
            username = request.user.username

        grade_user = USER_MODEL.objects.get(username=username)

        if not enrollment_data.get_course_enrollment(username, text_type(course_key)):
            raise CourseEnrollment.DoesNotExist

        return grade_user
Beispiel #4
0
    def test_get_course_enrollment(self, course_modes, enrollment_mode):
        self._create_course_modes(course_modes)

        # Try to get an enrollment before it exists.
        result = data.get_course_enrollment(self.user.username,
                                            unicode(self.course.id))
        self.assertIsNone(result)

        # Create the original enrollment.
        enrollment = data.create_course_enrollment(self.user.username,
                                                   unicode(self.course.id),
                                                   enrollment_mode, True)
        # Get the enrollment and compare it to the original.
        result = data.get_course_enrollment(self.user.username,
                                            unicode(self.course.id))
        self.assertEqual(self.user.username, result['user'])
        self.assertEqual(enrollment, result)
Beispiel #5
0
    def _get_single_user_grade(self, request, course_key):
        """
        Returns a grade response for the user object corresponding to the request's 'username' parameter,
        or the current request.user if no 'username' was provided.
        Args:
            request (Request): django request object to check for username or request.user object
            course_key (CourseLocator): The course to retrieve user grades for.

        Returns:
            A serializable list of grade responses
        """
        if 'username' in request.GET:
            username = request.GET.get('username')
        else:
            username = request.user.username

        grade_user = USER_MODEL.objects.get(username=username)

        if not enrollment_data.get_course_enrollment(username, str(course_key)):
            raise CourseEnrollment.DoesNotExist

        course_grade = CourseGradeFactory().read(grade_user, course_key=course_key)
        return Response([self._make_grade_response(grade_user, course_key, course_grade)])
Beispiel #6
0
    def _get_single_user_badge_progress(self, course_key, username=None):
        """

        """
        progress_response = []

        if not username:
            return progress_response
            # if 'username' in request.GET:
            #     username = request.GET.get('username')
            # else:
            #     username = request.user.username

        if not enrollment_data.get_course_enrollment(username,
                                                     str(course_key)):
            raise CourseEnrollment.DoesNotExist

        progress_user = USER_MODEL.objects.get(username=username)

        # Traverse through all course chapter blocks and check to see if a user has a badge assertion.
        for block_event_badge_config in BlockEventBadgesConfiguration.config_for_block_event(
                course_id=course_key, event_type='chapter_complete'):
            block_event_assertion = None
            if block_event_badge_config.badge_class:
                user_course_assertions = BadgeAssertion.assertions_for_user(
                    progress_user, course_id=course_key)
                for assertion in user_course_assertions:
                    if assertion.badge_class == block_event_badge_config.badge_class:
                        block_event_assertion = assertion
                        pass

            progress_response.append(
                self._make_badge_progress_response(course_key,
                                                   block_event_badge_config,
                                                   block_event_assertion))

        return progress_response