Mobile enrollments API: sort order by recent enrollment date.
This commit is contained in:
@@ -5,7 +5,7 @@ Tests for users API
|
||||
import datetime
|
||||
from django.utils import timezone
|
||||
|
||||
from xmodule.modulestore.tests.factories import ItemFactory
|
||||
from xmodule.modulestore.tests.factories import ItemFactory, CourseFactory
|
||||
from xmodule.modulestore.django import modulestore
|
||||
from student.models import CourseEnrollment
|
||||
|
||||
@@ -66,6 +66,23 @@ class TestUserEnrollmentApi(MobileAPITestCase, MobileAuthUserTestMixin, MobileEn
|
||||
courses = response.data
|
||||
self.assertEqual(len(courses), 0)
|
||||
|
||||
def test_sort_order(self):
|
||||
self.login()
|
||||
|
||||
num_courses = 3
|
||||
courses = []
|
||||
for course_num in range(num_courses):
|
||||
courses.append(CourseFactory.create(mobile_available=True))
|
||||
self.enroll(courses[course_num].id)
|
||||
|
||||
# verify courses are returned in the order of enrollment, with most recently enrolled first.
|
||||
response = self.api_response()
|
||||
for course_num in range(num_courses):
|
||||
self.assertEqual(
|
||||
response.data[course_num]['course']['id'], # pylint: disable=no-member
|
||||
unicode(courses[num_courses - course_num - 1].id)
|
||||
)
|
||||
|
||||
|
||||
class CourseStatusAPITestCase(MobileAPITestCase):
|
||||
"""
|
||||
|
||||
@@ -241,7 +241,10 @@ class UserCourseEnrollmentsList(generics.ListAPIView):
|
||||
lookup_field = 'username'
|
||||
|
||||
def get_queryset(self):
|
||||
enrollments = self.queryset.filter(user__username=self.kwargs['username'], is_active=True).order_by('created')
|
||||
enrollments = self.queryset.filter(
|
||||
user__username=self.kwargs['username'],
|
||||
is_active=True
|
||||
).order_by('created').reverse()
|
||||
return [
|
||||
enrollment for enrollment in enrollments
|
||||
if enrollment.course and is_mobile_available_for_user(self.request.user, enrollment.course)
|
||||
|
||||
Reference in New Issue
Block a user