def get_queryset(self): """ List one course run --- 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') partner = self.request.site.partner edit_mode = get_query_param(self.request, 'editable') or self.request.method not in SAFE_METHODS if edit_mode and q: raise EditableAndQUnsupported() if edit_mode and (not self.request.user.is_staff and not is_publisher_user(self.request.user)): raise PermissionDenied if edit_mode: queryset = CourseRun.objects.filter_drafts() queryset = CourseEditor.editable_course_runs(self.request.user, queryset) else: queryset = self.queryset if q: qs = SearchQuerySetWrapper(CourseRun.search(q).filter(partner=partner.short_code)) # This is necessary to avoid issues with the filter backend. qs.model = self.queryset.model return qs queryset = queryset.filter(course__partner=partner) return self.get_serializer_class().prefetch_queryset(queryset=queryset)
def get_queryset(self): """ List one course run --- 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') partner = self.request.site.partner if q: qs = SearchQuerySetWrapper( CourseRun.search(q).filter(partner=partner.short_code)) # This is necessary to avoid issues with the filter backend. qs.model = self.queryset.model return qs else: queryset = super( CourseRunViewSet, self).get_queryset().filter(course__partner=partner) return self.get_serializer_class().prefetch_queryset( queryset=queryset)
def get_queryset(self): """ List one course run --- 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') include_all_partners = get_query_param(self.request, 'include_all_partners') partners = Partner.objects.all( ) if include_all_partners else Partner.objects.filter( site=self.request.site) edx_org_short_name = self.request.query_params.get('org') if q: qs = SearchQuerySetWrapper( CourseRun.search(q).filter( partner__in=partners.values_list('short_code', flat=True))) # This is necessary to avoid issues with the filter backend. qs.model = self.queryset.model return qs else: queryset = super( CourseRunViewSet, self).get_queryset().filter(course__partner__in=partners) return self.get_serializer_class().prefetch_queryset( queryset=queryset, edx_org_short_name=edx_org_short_name)
def get_queryset(self): """ List one course run --- 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) partner = self.get_partner() if q: qs = SearchQuerySetWrapper( CourseRun.search(q).filter(partner=partner.short_code)) # This is necessary to avoid issues with the filter backend. qs.model = self.queryset.model return qs else: queryset = super( CourseRunViewSet, self).get_queryset().filter(course__partner=partner) queryset = queryset.select_related( *serializers.SELECT_RELATED_FIELDS['course_run']) queryset = queryset.prefetch_related( *serializers.PREFETCH_FIELDS['course_run']) return queryset
def get_queryset(self): q = self.request.query_params.get('q', None) if q: qs = SearchQuerySetWrapper(CourseRun.search(q)) # This is necessary to avoid issues with the filter backend. qs.model = self.queryset.model return qs else: return super(CourseRunViewSet, self).get_queryset()
def get_queryset(self): """ List one course run --- 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) partner = self.get_partner() if q: qs = SearchQuerySetWrapper(CourseRun.search(q).filter(partner=partner.short_code)) # This is necessary to avoid issues with the filter backend. qs.model = self.queryset.model return qs else: queryset = super(CourseRunViewSet, self).get_queryset().filter(course__partner=partner) queryset = queryset.select_related(*serializers.SELECT_RELATED_FIELDS["course_run"]) queryset = queryset.prefetch_related(*serializers.PREFETCH_FIELDS["course_run"]) return queryset