def get_queryset(self): q = self.request.query_params.get('q', None) if q: queryset = Course.search(q) else: queryset = super(CourseViewSet, self).get_queryset() queryset = prefetch_related_objects_for_courses(queryset) return queryset.order_by(Lower('key'))
def courses(self, request, id=None): # pylint: disable=redefined-builtin,unused-argument """ Retrieve the list of courses contained within this catalog. Only courses with active course runs are returned. A course run is considered active if it is currently open for enrollment, or will open in the future. --- serializer: serializers.CourseSerializerExcludingClosedRuns """ catalog = self.get_object() queryset = catalog.courses().active() queryset = prefetch_related_objects_for_courses(queryset) page = self.paginate_queryset(queryset) serializer = serializers.CourseSerializerExcludingClosedRuns(page, many=True, context={'request': request}) return self.get_paginated_response(serializer.data)
def get_queryset(self): """ List one course --- parameters: - name: include_deleted_programs description: Will include deleted programs in the associated programs array required: false type: integer paramType: query multiple: false """ q = self.request.query_params.get('q', None) if q: queryset = Course.search(q) else: queryset = super(CourseViewSet, self).get_queryset() queryset = prefetch_related_objects_for_courses(queryset) return queryset.order_by(Lower('key'))