Beispiel #1
0
    def retrieve(self, request, pk=None):
        """
        Return verified and professional seats of courses against provided catalog id.
        ---
        produces:
            - application/xml
        """

        catalog = get_object_or_404(Catalog, pk=pk)

        if not catalog.has_object_read_permission(request):
            raise PermissionDenied

        courses = catalog.courses()
        course_runs = CourseRun.objects.filter(
            course__in=courses).active().marketable()
        seats = Seat.objects.filter(
            type__in=[Seat.VERIFIED, Seat.PROFESSIONAL]).filter(
                course_run__in=course_runs)
        seats = seats.select_related(
            'course_run',
            'course_run__language',
            'course_run__course',
            'course_run__course__level_type',
            'course_run__course__partner',
            'course_run__course__type',
            'course_run__type',
            'type',
        ).prefetch_related(
            'course_run__course__authoring_organizations',
            'course_run__course__subjects',
        )

        serializer = serializers.AffiliateWindowSerializer(seats, many=True)
        return Response(serializer.data)
Beispiel #2
0
    def retrieve(self, request, pk=None):  # pylint: disable=redefined-builtin,unused-argument
        """
        Return verified and professional seats of courses against provided catalog id.
        ---
        produces:
            - application/xml
        """

        catalog = get_object_or_404(Catalog, pk=pk)

        if not catalog.has_object_read_permission(request):
            raise PermissionDenied

        courses = catalog.courses()
        course_runs = CourseRun.objects.filter(
            course__in=courses).active().marketable()
        seats = Seat.objects.filter(
            type__in=[Seat.VERIFIED, Seat.PROFESSIONAL]).filter(
                course_run__in=course_runs)
        seats = seats.select_related('course_run').prefetch_related(
            'course_run__course', 'course_run__course__partner')

        serializer = serializers.AffiliateWindowSerializer(seats, many=True)
        return Response(serializer.data)